类型转换

  1. 运算中 不同类型的数据先转换为统一类型 再进行运算

    低-----高

    byte short chat int long float double

    不能对布尔值进行转换

  2. 强制转换 (类型)+ 变量名 高到低

    • 会出现内存溢出
    • 会丢失精度
  3. 自动转换 低到高

public class demo03 {
    public static void main(String[] args) {
        int a=128;
        byte b=(byte) a;
        double c=a;
        System.out.println(a);
        System.out.println(b);// byte (-128~~127),赋值超出  内存溢出
        System.out.println(c);// 低到高 自动转换 不用强制
        System.out.println("---------------");
        System.out.println((int)235.6);//丢失精度
        System.out.println((int)-55.89f);//丢失精度
        System.out.println("---------------");
        char m='a';
        int d=m+1;
        System.out.println(d);
        System.out.println((char)d);
        //操作大数字的时候   注意溢出    数字直接可以用下划线分割
        int money=10_0000_0000;
        int years=20;
        int total=money*years;
        long total1=money*years;
        long total2=(long)money*years;
        long total3=money*((long)years);
        System.out.println(total);//-1474836480  数字溢出
        System.out.println(total1);// total1 在转换成long之前已经溢出了
        System.out.println(total2);
        System.out.println(total3);
    }
}