Java基础——类型转换注意事项及常见问题
由于Java是强类型语言,所以要进行有些运算的时候,需要用类型转换
低----------------------------------------------------------------------------------------- >高
byte ,short ,char-> int-> float-> double
运算中,不同类型的数据先转换为同一类型,然后进行计算
 public class demon1 {
     public static void main(String[] args) {
         int i=128;
         byte b=(byte)i;//内存溢出
         //强制转换 (类型)变量名  高--->低
         System.out.println(b);
         System.out.println(i);
 
         //自动转换   低--->高
         double c=i;
         System.out.println(c);
         System.out.println(i);
 
         /*
         注意点:
         1.  不能对布尔值进行转换
         2.  不能把对象类型转换为不相干的的类型
         3.  在把高容量转换到低容量的时候, 强制转换
         4.转换时可能存在内存溢出, 或精度问题
          */
         System.out.println("========");
         System.out.println((int)23.7);//double型    23
         System.out.println((int)-45.89f);//float型  -45
 
         System.out.println("========");
         char d='a';
         int f=d+1;
         System.out.println(f);//   98
         System.out.println((char)f);//   b
     }
 
 }
 
 
常见问题
 public class demon2 {
     public static void main(String[] args) {
         //操作大数时  注意溢出问题
         //JDK7新特性,  数字之间可以用下划线分割
         int money=10_0000_0000;
         int years=20;
         int total=money*years;
         System.out.println(total);//-1474836480,  计算的时候溢出了
         long total2=money*years;//默认是int(计算完之后才转换为long类型) 转换前已经存在问题了
         long total3=money*((long)years);
         System.out.println(total3);//20000000000
         
         // L l(一般用大写)
 
     }
 }
 

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号