2020.09.09——java类型转换

java类型转换

        //强制转换   (类型)变量名   高-低
       int i = 128;
       byte b = (byte) i;//强制转换,内存溢出

       System.out.println(i);//128
       System.out.println(b);//-128

       //自动转换   低-高
       int i2 = 128;
       double d = i2;

       System.out.println(i2);//128
       System.out.println(d);//128.0

       //转换精度问题
       System.out.println((int) 23.7);//23
       System.out.println((int) -45.89f);//-45

       //操作比较大的数的时候,注意溢出问题
       //jdk7新特性,数字之间可以用下划线分割
       int money = 100_000_000;
       System.out.println(money);//100000000
       int year = 200;
       int total = money * year;
       long total2 = money * year;
       long total3 = money * ((long) year);
       System.out.println(total);//-1474836480 , 计算时候溢出了
       System.out.println(total2);//-1474836480,转换之前是int,计算时已经溢出,转换为long还是错误的
       System.out.println(total3);//20000000000,计算前转换,money会自动转换为long

 

注意点

  1. 不能对布尔值进行转换

  2. 不能把对象类型转换为不相干的类型

  3. 在把高容量转换到低容量的时候,强制转换

  4. 转换的时候可能存在内存溢出或者精度问题

 
posted @ 2020-09-09 16:23  叶不孤  阅读(405)  评论(0编辑  收藏  举报