由于JAVA是强类型语言,所以要进行有i额运算的时候,需要用到类型转换
运算中,不同类型的数据先转化为同一类型,然后进行预算。
强制类型转换:高到低需要强制
自动类型转换:低到高自动转换就可以
public class dome04 { public static void main(String[] args) { int i=128; byte b=(byte) i;//数据不一,内存溢出 //这属于是强制转换 (类型)变量名 从高--低需要强制转换 //自动转换 从低--高 double c=i;//输出成为小数,因为double比int级别高,这属于是自动转换 /* * 注意点: * 1.不能对布尔值进行转换 * 2.不能把对象类型转换为不相干的类型,通俗一点讲不能把一个人变成猪,但是可以把男人变成女人 * 3.在把大容量转换到低容量的时候需要强制转换 * 4.转换的时候可能存在内存溢出,或者精度问题*/ System.out.println("============"); float d=23.7f; double e=45.89; System.out.println((int) d);//输出为23,精度存在问题 System.out.println((int)e);//输出为45,精度存在问题 System.out.println(c); System.out.println(i); System.out.println(b); System.out.println("==================="); char f='a'; int g=f+1; System.out.println(g);//输出出来是数字,因为char本身有Unicode编码表,也是由数字组成的。 System.out.println((char)g);//强行转换,输出字母,因为char本身有Unicode编码表,也是由数字组成的。 System.out.println("===================="); //操作比较大的时候,注意溢出问题 int money=10_0000_0000;//数字之间可以用下划线分割,方便查看。 int years=20; int total=money*years; System.out.println(total);//输出结果为负数,计算溢出 long total2=money*years; System.out.println(total2);//输出结果没有变化,计算溢出,默认是int,转换之前已经存在问题了?不能这样去做! long total3=money*((long)years);//先把一个数转换为long System.out.println(total3);//输出结果正确,先把一个数转换为long } }