类型转换
1 public class Demo2 { 2 public static void main(String[] args) { 3 int i=128; 4 byte b=(byte)i;//内存溢出 5 // 低--------------------------------------高 6 // byte,short,char->int->long->float->double 7 //强制转换 (类型)变量名 高--低 8 //自动转换 低--高 9 System.out.println(i); 10 System.out.println(b); 11 12 /* 13 注意点: 14 1、不能对布尔值尽心转换 15 2、不能吧对象类型转换为不相干的类型 16 3、在把高容量转换到低容量的时候,强制转换 17 4、转换的时候可能存在内存溢出,或者精度问题! 18 * */ 19 System.out.println("================"); 20 System.out.println((int)23.7);//23 21 System.out.println((int)-45.89f);//-45 22 System.out.println("================"); 23 char c='a'; 24 int d=c+1; 25 System.out.println(d); 26 System.out.println((char)d); 27 System.out.println("================"); 28 // 操作比较大的数的时候,注意溢出问题 29 // JDK7新特性,数字之间可以用下划线分割 30 int money =10_0000_0000; 31 int years =20; 32 int total =money*years;//-1474836480,计算的时候溢出了 33 System.out.println(total); 34 long total2 =money*years;//默认是int,转换之前已经存在问题了 35 System.out.println(total2); 36 long total3 =money*((long)years);//先把一个数转换为long 37 System.out.println(total3); 38 } 39 }