由于java是强类型语言,所以进行有些运算的时候需要用到类型转换
低------------------------------------------------->高
byte,short,char -> int -> long -> float -> double
int i=128;
byte b=(byte)i;//内存溢出(强制转换)
//强制转换 (类型)变量名 高-->低
//自动转换 低-->高
int y=128;
double d=i;(低到高,自动类型转换)
/*
注意点:
1,不能对布尔值进行转换(boolean单位为位)
2,不能把对象类型转换为不相干的类型
3,在把高容量转换到低容量的时候,强制类型转换
4,转换的时候可能存在内存溢出或者精度问题
*/
//精度问题
System.out.println((int)56.8);//输出56
System.out.println((int)52.45f);//输出52
字符类型
char n=‘a‘;
int o=n+1;
System.out.println(o);//98
System.out.println((char)o);//b
//操作较大的数的时候,注意溢出问题
//数字之间可以用下划线分割,且不会被输出
int money=10_0000_0000;
int years=20;
int total=money*years;
System.out.println(total);//-1474836480,计算溢出
long total2=money*years;
System.out.println(total2);//-1474836480,默认是int,转换之前已经存在问题了
//如何解决?
long total3=money*(long)years;//先把一个数转换为long
System.out.println(total3);
原文:https://www.cnblogs.com/bronya187/p/14696279.html