Java基础(二)
05:类型转换
由于Java是最强类型语言,所以在进行有些运算时会用到类型转换。
低-------------------------------------------------------------------->高
byte,shout, char-->int-->long-->float--double(小数的优先级大于整数)
不同类型的数据先转化为同一类型,然后运算
public class Demo03 { public static void main(String[] args) { int i=128; byte b=(byte)i;//内存溢出 //强制转换 (类型)变量名 高-->低 //自动转换 低-->高 int a=128; double d=i; System.out.println(a); System.out.println(d); /* 注意点: 1.不能对布尔值进行转换 2.不能把对象类型转换为不相干类型 3.再把高容量转换到低容量时,强制转换 4.转换的时候可能存在内存溢出问题,或者精度问题 */ System.out.println("=====================精度问题"); System.out.println((int)23.7);//23 System.out.println((int)-45.89f);//-45 System.out.println("============================="); char c='a'; int e=c+1; System.out.println(e);//98 System.out.println((char)e);//b } }
public class Demo04 { public static void main(String[] args) { //操作比较大的数的时候,注意溢出问题 //jdk7新特性,数字之间可以用下划线分割 int money=10_0000_0000; int years=20; int total=money*years; long total2=money*years;//默认是int,转换之前已经存在问题 long total3=money*((long)years);//先把一个数转换为long System.out.println(total3);//-1474836480,计算时溢出了 } }