int i =128;byte b =(byte) i;//内存溢出double c = i;//强制转换(类型)变量名 高--低//自动转换(类型)变量名 低--高System.out.println(i);//128System.out.println(b);//-128System.out.println(c);//128.0/*注意点:1.不能对布尔值进行转换2.不能把对象类型转换为不相干的类型3.在把高容量转换到低容量的时候,强制转换4.转换的时候可能存在内存溢出,或者精度问题!*/System.out.println((int)23.7);//23System.out.println((int)-45.89f);//-45char s='a';int d=s+1;System.out.println(d);//98System.out.println((char)d);//b
注意问题
//操作比较大的数的时候,注意溢出问题//JDK7新特性,数字之间可以用下划线分割int money =10_0000_0000;System.out.println(money);//输出不会出现下划线int years =20;int total= money*years;//-1474836480,计算的时候数据溢出System.out.println(total);long total2=money*years;System.out.println(total2);//-1474836480 默认是int,计算完才转化为long,转换之前已经存在问题了long total3=money*(long)years;//先把一个数转换为long类型System.out.println(total3);//20000000000System.out.println(total3);//20000000000