在Java中,一共有八个基本数据类型,下图是关于这八个基本数据类型的名称、写法、占用字节数和取值范围:
问: float = 3.1; //请问这个初始化的数据类型是什么?
答: 是double类型,要想把它改成float类型,应该改成这样:float = 3.1f 或 float = 3.1F。不在后缀加上f或F则会被认为是double类型。
注意:小数在浮点型是不能精确表示每一位的,只能表示小数点后几位,具体得看浮点数的精度。
关于布尔类型(boolean),在C语言中0表示假,非0表示真。 但在Java中,boolean的取值是且只能是两种:true 和 false 。
关于int在使用时的注意事项,也放在下图:
总结一下:
1.int不论是在32位、64位或者是其他的系统,都只在内存中占用4个字节。
2.与C语言不同,变量在使用时必须要进行赋值来进行初始化,否则会编译报错。
3.一般数据类型的包装类型都是在首字母进行大写(例如布尔类型(boolean)是Boolean,double是Double),而int比较特殊,包装类型是Integer。还有一种特殊的是char,它的包装类型是Character。
强制类型转换
在Java中,强制类型转换(Type Casting)是指将一种数据类型的值显式转换为另一种数据类型的过程,通常发生在两种类型不兼容但逻辑上可转换的情况下。强制类型转换需要开发者明确指定目标类型。强制类型转换一般有两个转换方向。
1.小于四个字节类型的转换:如图
下面有一道例题,可做一下:
答案: B。
下面还有一道例题,在C中学过位运算的同学可以尝试做一下:
答案是 B。
2.大于4个字节类型的转换:
如果是范围大的强制赋给范围小的,例如 long 赋给 int ,double 赋给 float 。它们都是8个字节赋给4个字节,这时会出现精度丢失的情况:也就是在内存中只截取出4个字节的二进制码,剩下的丢掉。这时得到的值很可能会变化。
对于布尔类型(boolean)是不能进行强制类型转换的,因为它只能表示真假(true 和 false)。若尝试进行强制类型转换会编译报错。
答案:ABC。