java的八种数据类型:
整型:byte(1个字节)、short(2个字节)、int(4个字节)、long(8个字节)
浮点型:float(单精度,4个字节)、double(双精度,8个字节)
字符型:char(2个字节)
布尔型:boolean(没有明确规定)
八种数据类型的表示范围:
1byte(字节)=8bit
①int表示范围:-2^31~2^31-1
解释:一个int占4个字节,4byte=32bit
int可以表示有符号和无符号。一共有32个比特位,第一位是符号位,剩下31位是数值位,所以int能表示的范围是-2^31~2^31-1
②long表示范围:-2^63~2^63-1
③short表示范围:-2^15~2^15-1
④byte表示范围:-2^7~2^7-1
long、short、byte表示范围计算和int同理,浮点型的表示范围一般不关注
⑤char表示范围:0~2^16
解释:在java里面char之能用来表示字符,所以一共有16位比特位表示,没有符号位,所以char表示的范围为0~2^16
例子1:char a = 美;
解释:一个汉字占两个字节,在Java中一个char占两个字节,所以 char a = 美 编译并不会报错
例子2:char a = 97;
解释:a的类型是字符型,所以97表示ASCII表中的字符 “a”,而并不是表示数值97
⑥boolean表示范围:true和false
布尔类型只有两种取值:true和false
在Java中int和boolean类型不能相互转换
类型转换:
布尔类型不能与其他类型进行转换
①强制类型转换(显式):数据范围大的到数据范围小的
比如:int a = 10;long b = 20;a = (int)b;
此时需要进行强制转化,因为long占8个字节,int占4个字节
例子:
int a = 10;float b = 12.5; a = b;
此时会出现编译错误,虽然int和float都是占4个字节,但是float可以表示小数,而int只能表示整数,float能表示的范围比int广。
②隐式转换:数据范围小的到数据范围大的
比如:int a = 10;long b = 20;b = a;
在代码编译时,编译器会自动将a的类型提升为b的类型。