类型转换
-
运算中 不同类型的数据先转换为统一类型 再进行运算
低-----高
byte short chat int long float double
不能对布尔值进行转换
-
强制转换 (类型)+ 变量名 高到低
- 会出现内存溢出
- 会丢失精度
-
自动转换 低到高
public class demo03 {
public static void main(String[] args) {
int a=128;
byte b=(byte) a;
double c=a;
System.out.println(a);
System.out.println(b);// byte (-128~~127),赋值超出 内存溢出
System.out.println(c);// 低到高 自动转换 不用强制
System.out.println("---------------");
System.out.println((int)235.6);//丢失精度
System.out.println((int)-55.89f);//丢失精度
System.out.println("---------------");
char m='a';
int d=m+1;
System.out.println(d);
System.out.println((char)d);
//操作大数字的时候 注意溢出 数字直接可以用下划线分割
int money=10_0000_0000;
int years=20;
int total=money*years;
long total1=money*years;
long total2=(long)money*years;
long total3=money*((long)years);
System.out.println(total);//-1474836480 数字溢出
System.out.println(total1);// total1 在转换成long之前已经溢出了
System.out.println(total2);
System.out.println(total3);
}
}