Java基本数据类型之间的转换
不同的基本数据类型之间的转换分为自动类型转换和强制类型转换。
自动类型转换
系统支持把某种基本类型的值直接赋值给另一种基本类型的变量,这种方式为自动类型转换。
布尔类型占有一个字节,表示的是 true 和 false ,与其他基本类型不能进行转换。下图为各种基本类型的转换方式(直线表示能够实现,虚线表示有时不能转换成功):
int类型和float类型在计算机中的存储方式:
虽然两者在内存中所占大小相同,但因为两者的数值位所占大小不同,当 int类型 向 float 类型 转换的时候有时会不成功(出现精度丢失的情况)。
强制类型转化
当在Java中计算byte类型的数值计算时,例如:
public static void main(String[] args) {
byte a = 1;
byte b =10;
byte c =a+b;
System.out.println(c);
}
输出结果会产生精度丢失,因为在计算两个整数 a+b 的过程中系统会默认为 int类型 ,之后在转换为 c 定义的byte类型。
所以在计算过程中需要将c的计算过程改为:
byte c =(byte)a+b