public class Demo04 {
    public static void main(String[] args) {
        int i = 128;
        //强制转换  (数据类型)变量名   高→低
        byte b = (byte)i;
        //自动转换     低→高
        double d = i;
        System.out.println(i);
        System.out.println(b);
        System.out.println(d);
        /*
        注意点:
        1.不能对布尔值进行转换
        2.不能把对象类型转换为不相干的类型
        3.把高容量转换为低容量--强制转换
        4.转换的时候可能存在内存溢出,或精度问题。
         */
        //操作数比较大的时候,注意溢出问题
        //JDK7新特性:数字之间可以用下划线分割
        int money = 10_0000_0000;
        int years = 20;
        int total =  money*years;//-1474836480  计算的时候溢出了
        long total1 = money*years;//默认是int 在转换之前就已经存在问题了
        long total2 = money*(long)years;//在出现问题之前进行转换,不会发生溢出现象
        System.out.println(total);//-1474836480
        System.out.println(total1);//-1474836480
        System.out.println(total2);//20000000000
    }
}