2020.09.09——java类型转换
//强制转换 (类型)变量名 高-低
int i = 128;
byte b = (byte) i;//强制转换,内存溢出
System.out.println(i);//128
System.out.println(b);//-128
//自动转换 低-高
int i2 = 128;
double d = i2;
System.out.println(i2);//128
System.out.println(d);//128.0
//转换精度问题
System.out.println((int) 23.7);//23
System.out.println((int) -45.89f);//-45
//操作比较大的数的时候,注意溢出问题
//jdk7新特性,数字之间可以用下划线分割
int money = 100_000_000;
System.out.println(money);//100000000
int year = 200;
int total = money * year;
long total2 = money * year;
long total3 = money * ((long) year);
System.out.println(total);//-1474836480 , 计算时候溢出了
System.out.println(total2);//-1474836480,转换之前是int,计算时已经溢出,转换为long还是错误的
System.out.println(total3);//20000000000,计算前转换,money会自动转换为long
注意点
-
不能对布尔值进行转换
-
-
在把高容量转换到低容量的时候,强制转换
-