今天看啥  ›  专栏  ›  听风无涯JixT

Java之数据类型与运算符详解

听风无涯JixT  · CSDN  ·  · 2021-04-04 21:15

目录

数据类型

运算符


本篇博客主要介绍Java语言中的数据类型与运算符。

数据类型

1.首先我们介绍一下什么是 变量

变量指的是程序运行时可变的量. 相当于开辟一块内存空间来保存一些数据.
类型则是对变量的种类进行了划分, 不同的类型的变量具有不同的特性.
我们所讨论的 "变量" 主要和我们的 "内存" 这样的硬件设备密切相关.

2.变量的类型
在Java中变量分为整型变量、浮点型变量、字符型变量、字节类型变量、布尔类型变量和字符串类型变量。

注Java中String也就是字符串类型,它是一个类,也就是如下图的引用类型

3.整型变量:

①int

在Java中一个int占4个字节,与操作系统无关,不像c语言分32位,64位等~

基本语法格式:

int 变量名 = 初始值;

代码示例:

public class TestDemo {
    public static void main(String[] args) {
        int a = 10;
        System.out.println(a);
    }
}

运行结果:

注:

1.int 表示变量的类型是一个整型

2.变量名是变量的标识后续都是通过这个名字来使用变量

3.Java 中 = 表示赋值(和数学不一样), 意思是给变量设置一个初始值

4. 初始化操作是可选的, 但是建议创建变量的时候都显式初始化

5. 最后不要忘记分号, 否则会编译失败

我们来测一下int的范围代码如下:

public class TestDemo {
    public static void main(String[] args) {
        System.out.println(Integer.MAX_VALUE);//int的最大值
        System.out.println(Integer.MIN_VALUE);//int的最小值
    }
}

运行结果是

表示int是4个字节 4个字节的范围是[-2^31,2^31-1]

②long

long与int对变量命名规则类似,Java中long占8个字节。

long 变量名 = 初始值;//建议数字最后加上大写的L或者小写的l,便于区分。

public class TestDemo {
    public static void main(String[] args) {
        long a = 10L;
        System.out.println(a);
        System.out.println(Long.MAX_VALUE);//long的最大值
        System.out.println(Long.MIN_VALUE);//long的最小值
    }
}

运行结果:

表明long 的范围是[-2^63,2^63-1]

③short

short占2个字节

short 变量名 = 初始值;

4.浮点型变量

①float

基本格式: 单精度浮点型float,占4个字节。

float 变量名 = 初始值;//建议初始值后加大写F或小写f表示这个数是一个单精度浮点型!

public class TestDemo {
    public static void main(String[] args) {
        float a = 10L;
        System.out.println(a);
    }
}

运行结果:

②double

基本格式:双精度浮点型,占8个字节。

double 变量名 = 初始值;

public class TestDemo {
    public static void main(String[] args) {
        double a = 12.5;
        System.out.println(a);
    }
}

运行结果:

5.字符型变量

char

char占2个字节! Java中字符都是用Unicode编码

char 变量名 = 初始值;

代码示例:

public class TestDemo {
    public static void main(String[] args) {
        char a ='A';
        System.out.println(a);
    }
}

运行结果:

6.字节型变量

byte

byte 变量名 =初始值;

7.布尔类型变量

boolean

boolean 变量名 = 初始值;

注:boolean只有false和true两个值!

Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法

8.字符串类型变量

String

串通常是用" "包含;

String 变量名 = 初始值;

public class TestDemo {
    public static void main(String[] args) {
        String name = "zhangsan";
        System.out.println(name);
    }
}

Java中可以实现两个字符串"相加",此相加并不是真正的相加,只是将字符串 拼接到另一个字符串的后面。

public class TestDemo {
    public static void main(String[] args) {
        String name1 = "zhangsan";
        String name2 = "lisi";
        System.out.println(name1+name2);
    }
}

运算符

1.算术运算符 :+ - * / %

代码如下:

public class TestDemo {
    public static void main(String[] args) {
        int a=5;
        int b=2;
        System.out.println(a+b);//加法运算符结果是7
        System.out.println(a-b);//减法运算符结果是3
        System.out.println(a*b);//乘法运算符结果是10
        System.out.println(a/b);//除法运算符结果是2
        System.out.println(a%b);//求余运算符结果是1
    }
}

注:0不能作为除数!

public class TestDemo {
    public static void main(String[] args) {
        int a = 5;
        int b = 0;
        System.out.println(a/b);
    }
}

会抛出0不能作为除数的异常!

2.增量运算符:+= -= *= /= %=

public class TestDemo {
    public static void main(String[] args) {
        int a = 5;
        a+=1;//等价于a=a+1;此时a=6;
        System.out.println(a);//6
        a-=1;//等价于a=a-1;上次执行完a+=1时a已经变成了6,这时执行a-=1 a变成了5
        System.out.println(a);//5
        a*=2;//等价于a=a*2 此时a=10;
        System.out.println(a);//10
        a/=2;//等价于a=a/2;此时a=5;
        System.out.println(a);//5
        a%=2;//等价于a=a%2;此时a=1
        System.out.println(a);//1
    }
}

3. 自增 自减运算符 前缀++ 后缀++ 前缀-- 后缀--

public class TestDemo {
    public static void main(String[] args) {
        int a=1;
        int b=a++;//等价于b=a a=a+1此时b=1 a=2;
        System.out.println(b);//1
        System.out.println(a);//2
        b=++a;//等价于a=a+1 b=a 此时a=3 b=3;
        System.out.println(b);//3
        System.out.println(a);//3
        b=a--;//等价于b=a a=a-1 此时b=3 a=2;
        System.out.println(b);//3
        System.out.println(a);//2
        b=--a;//等价于a=a-1 b=a 此时a=1 b=1
        System.out.println(b);//1
        System.out.println(a);//
    }
}

4.逻辑运算符:&&(与) ||(或)  !(非)

逻辑运算符的操作数(操作数往往是关系运算符的结果)和返回值都是 boolean 也就是说 只有2值 true 或 false

public class TestDemo {
    public static void main(String[] args) {
        int a = 10;
        int b =5;
        int c =6;
        System.out.println(a>b&&a>c);//T
        System.out.println(a>b||a>c);//T
        System.out.println(a!=b);//T
        System.out.println();
        System.out.println(a<b&&a>c);//F短路求值,&&运算符中一假为假!
        System.out.println(a<b||a>c);//T 或运算符中一真为真!
    }
}

短路求值!

结论: 1. 对于 && , 如果左侧表达式值为 比特科技 false, 则表达式的整体的值一定是 false, 无需计算右侧表达式

2. 对于 ||, 如果左侧表达式值为 true, 则表达式的整体的值一定是 true, 无需计算右侧表达式.

5.位运算符

&(按位与) |(按位或)  ~(按位取反) ^(按位异或)

位指二进制位

public class TestDemo {
    public static void main(String[] args) {
        int a=3;
        int b=4;
        System.out.println(a&b);//0
        System.out.println(a|b);//7
        System.out.println(a^b);//7
        System.out.println(~a);//-4
    }
}

我们来看 a和b的二进制表示

以上4张图是为什么得到这个答案的分析过程。
6.移位运算符

>>(右移):最右位不要了,正数最左侧补0,负数补1

<<(左移):最左侧位不要了,最右侧补0

>>>(无符号右移):最右侧不要了,最左侧补0

注:>>运算符 相当于除以2 右移n位 相当于除以2 的n次方

<<运算符 相当于 乘2    左移n位  相当于乘2的n次方

7.条件运算符

格式:

表达式1?表达式2:表达式3

比如:

public class TestDemo {
    public static void main(String[] args) {
        int a = 10;
        int b = 2;
        int c=a>b?a:b;
        System.out.println(c);
    }
}

答案毫无疑问是10,这是在求2个数的较大值。也就是说 表达式1成立执行表达式2,表达式1不成立执行表达式3!

​​​​​​​感谢观看!!!




原文地址:访问原文地址
快照地址: 访问文章快照