public class LeiXinZhuanHuan {
public static void main(String[] args) {
int i = 128;
byte b = (byte) i;//因为int 比 byte大所以会出现内存溢出输出结果就是-128
//这就是强制转换
//强制转换 (类型)变量名 高->低
//,自动类型转换 低->高
System.out.println(i);
System.out.println(b);
System.out.println("=============================================================================================");
//注意点:
//1,不能对布尔值进行转换
//2,不能把对象转换成不相干的类型
//3,在把高容量转换到低容量的时候,强制转换
//4,转换的时候可能存在内存溢出,或者精度问题
System.out.println((int) 10.1);
System.out.println((int) -45.89);//转精度会出现精度丢失问题
System.out.println("=============================================================================================");
char c = 'a';
int d = c + 1;
System.out.println(d);
System.out.println((char) d);
System.out.println("==============================================================================================");
//操作比较大的数的时候,注意溢出问题
//jdk7新特性,数字之间可以用下划线分割
int money=10_0000_0000;
int years=20;
int total=money*years;//会导致内存溢出
System.out.println(money);
System.out.println(total);
long gg1=money*years;//默认是int,转换之前已经存在问题了
System.out.println(gg1);
long gg=money*(long)years;//先把一个数转换为long
System.out.println(gg);
}
}
输出结果为