类型转换

类型转换

低 ---------------------------------- >高

byte,short,char--->int--->long--->float--->double(浮点数优先级)

 public class Demo05 {
     public static void main(String[] args) {
         int i =128;
         byte b = (byte)i;//内存溢出
         System.out.println(i);
         System.out.println(b);
         //强制转换=(类型)变量名 高到低
 
         //自动转换 低到高
         int a = 126;
         double c =  a;
         System.out.println(a);
         System.out.println(c);
         /*
         注意点
         1.不能对布尔值进行转换
         2.不能把类型转换成不相关类型
         3.大容量转换成低容量 强制转换
         4.转换可能存在内存溢出和精度问题
         */
         System.out.println("=====================");
         char q = 'a';
         int w = q+1;
         System.out.println((char)w);

 

操作比较大的数计算时注意内存溢出

 public class Demo06 {
     public static void main(String[] args) {
         //操作比较大的数计算时注意内存溢出
         //jdk7 新特性数字之间可以用下划线分割
         int money = 10_0000_0000;
         int year = 20;
         int tota = money*year;//计算时溢出-1474836480
         long tota1 = money*year;//默认是int 转换之前已经出现问题
         long tota3 = money*((long)year);//将其中一个int转换成long
         System.out.println(tota3);
 
    }
 }

 

posted @ 2021-10-18 15:38  L617  阅读(59)  评论(0)    收藏  举报