类型转换

类型转换

类型容量从低到高:byte,short,char-->int-->long-->float-->double

  1. 强制类型转换: (类型)变量名

    int i=128;
    byte b=(byte)i;//-128  内存溢出
    
  2. 自动类型转换: 低--->高

    int i=128;
    double b=i;//128.0
    

注意点:

  • 不能对布尔值进行转换
  • 不能把对象类型转换为不相干的类型
  • 在把高容量转换到低容量的时候,强制转换
  • 转换的时候可能存在内存溢出或者精度问题! 例:((int)23.7) //23
      //操作比较大的数的时候,注意溢出问题   
      //JDK7新特性,数字之间可以用下划线分割       
      int money=10_0000_0000;      
	  int years=20;        
      int total=money*years;//-1474836480 ,计算的时候溢出了      
      long total2=money*years;//-1474836480 ,转换之前已经存在问题了       
      long total3=money*((long)years);//先把一个数转换为long,20000000000 
       
       System.out.println(total);        
       System.out.println(total2);     
       System.out.println(total3);   
}
}
posted @ 2022-11-03 15:16  你头发乱liu  阅读(19)  评论(0)    收藏  举报