1 java数据类型
布尔型
true/false,不可以以0或非0的数字代替;不能进行数据之间的转换。
整数类型
整数类型 | 大小 | 最小值 | 最大值 |
---|---|---|---|
byte | 8-bit(一字节) | -128 | 127 |
short | 2Byte=16-bit | -32768 | 32767 |
int | 4Byte=32-bit | -2^31 | 2^31-1 |
long | 8Byte=64-bit | -2^63 | 2^63-1 |
整型默认为int型,而long类型表示的范围要超出int表数范围,所以,声明long类型时,常量后要加L(l)。
其他的byte 和 short 只要不超出范围即可。
浮点型
浮点类型 | 大小 | 最小值 | 最大值 |
---|---|---|---|
float | 4Byte=32-bit | 1.4e-45 | 3.40e38 |
double | 8Byte=64bit | 4.9e-324 | 1.79e308 |
浮点型默认为double,所以float类型声明时后面需要加f/F ; 或者用强制转换符。
Float f1=(float)0.1;
Float f2=0.1f;
两者的区别:f1 为八个字节的double类型,强制转换为四个字节的float类型。
f2 本身就是四个字节的float类型。
字符型 (char)
每个字符占两个字节;值放在‘ ’里(注意单引号);
2Java基本数据类型转换
Java语言是一种强类型的语言。强类型的语言有以下几个要求:
(1) 变量或常量必须有类型,而且只能在声明以后才能使用;
(2) 赋值时类型必须一致,值的类型必须和变量或常量的类型完全一致;
(3) 运算时类型必须一致,参与运算的数据类型必须一致才能运算。
但在实际应用中,经常需要在不同类型的值之间进行操作,这时就需要进行数据类型的转换。
数据类型转换有两种:
(1) 自动类型转换:编译器自动完成类型转换,不需要在程序中编写代码;
规则:从存储范围小的类型到存储范围大的类型。
具体规则:byte→short(char)→int→long→float→double.
易错:
byte b1 = 1;
byte b2 = 1;
b1+=b2;//正常
b1 = b1+b2;//自动转换为int型
(2) 强制类型转换:强制编译器进行类型转换,必须在程序中编写代码。该类型转换很可能存在精度的损失。
规则:从存储范围大的类型到存储范围小的类型。
易错:
‘byte b = (byte) 128;
System.out.println(b + “”);//输出-128’
128 在内存中存储为 0000 0000 0000 0000 1000 0000
转换为byte 取后8位 ,
1000 0000 这是byte的负数以补码保存
先减一
0111 1111 ,
然后取反
1000 0000
所以输出为 -128