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 }