//强制转换 (转换类型)变量名,由高到低去转换
//自动转换 由低到高去转换
int i =128;
double b = i;
System.out.println(i);
System.out.println(b);
#各类型从低到高图解
#各种数据类型容量
注意点
1.不能对布尔值进行转换,特别注意
2.不能把对象类型转换为不相干的类型
3.高容量转换低容量,必须使用强制转换
4.转换的时候可能存在内存溢出和精度问题
*/
System.out.println("=======================================");
System.out.println((int)23.7);//23 少了小数点后面的值,这就是存在精度问题
System.out.println((int)-45.89);//45
System.out.println("=======================================");
char c =‘a‘;
int d = c+1;
System.out.println(d);
System.out.println((char)d);//低到高,没有问题自动转换了
System.out.println("=======================================");
//操作比较大的数的时候注意溢出问题
//jdk新版本特性,数字间可以用下划线区分,下划线不会被输出
int money = 10_0000_0000;
int years = 20;
int total =money*years;
System.out.println(money*years);//输出为-1474836480,计算的时候溢出了
System.out.println(money);//默认是int,转换前出现问题,解决方法示例如下
?
long total22 =years*((long)money);
System.out.println(total22);//先把一个变量的值转换为long
?
//long的L尽量用大写,小写l容易看成1