1.整型家族
数据类型 | 占用空间(字节) | 取值范围 |
---|---|---|
byte | 1 | -128~127 |
short | 2 | -32768~32767 |
int | 4 | -2147483648~2147483647 |
long | 8 | -263~263-1 |
java中只有有符号数,没有无符号数。
1.1 int类型
int a=10; //定义一个整型类型
int类型占用4个字节空间,32个比特位大小,其中最高位为符号位,1表示负,0表示正。
取值范围就是(10000000000000000000000000000000~01111111111111111111111111111111)
10000000000000000000000000000000二进制码转换成十进制为-2^31,这个二进制码为这个负数在计算机中的补码,需要转换成原码来计算数值,补码减一后按位取反
01111111111111111111111111111111
取反
10000000000000000000000000000000 —-2^31
1.2 byte类型
byte占用一个字节的空间
byte a=10;
取值范围的计算方式与int相同,不同的是它们的占用空间不同
1.3 short类型
short占用两个字节空间的大小
short a=10;
1.4 long类型
long a=10lL;//定义时要在数字的后面加上‘l’或者‘L’
不加’l‘或者’L‘编译会不通过,java默认该数为整型
注意:最好在定义一个long类型时候加上’l‘或者’L‘当赋值的数值超出int类型的最大值的时候编译会报错,因为java默认该数值为int类型
long l = 2 147 483 648;//编译会报错
2. 浮点类型
用来存储小数部分
数据类型 | 占用空间 | 取值范围 |
---|---|---|
float | 4个字节 | |
double | 8个字节 |
在默认的情况下,小数被认为double类型,若要用float类型需要在小数的后面加上F或者f
在定义一个float类型时,会被默认该数为double类型,必须在后面加上F或者f,否则编译不通过
3.字符类型
char 占用空间大小为2个字节,无符号,范围0到32768,java中char类型使用的是Unicode字符集,其可以表示全人类语言中的字符
4. boolean类型
其中包括false 和 true, 用来判定逻辑条件 整型值和布尔值之间 不能进行相互转换
没有明确规定布尔类型的大小,其值只能是true或者是false