Java数据类型的转换
  • 由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。

  • 运算中,不同类型的数据要先转化为用一类型,然后进行运算,请根据图标进行转换。

Java数据类型的转换_强制转换

  • 强制转换 高-->低(图中右-->左)

 int i = 120;
 byte b = (byte)i;//强制转换,把int类型转换为byte类型 (需要转换的类型)变量名  
  • 自动转换 低-->高(图中左-->右)

 int i = 120;
 long h = i;//自动转换,把int类型转换为long类型

 

注意点: 1.不能对布尔值进行转换

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

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

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

 //1.内存溢出
 int i = 128;
 byte b = (byte)i;
 System.out.println(b);
 //输出的结果为-128,因为byte的内存容量小于128,所以为负数,这就是内存溢出

 //2.精度问题
 System.out.println((int) 23.7);
 //输出结果为23
 System.out.println((int) -45.89f);
 //输出结果为-45

 //1.计算时的内存溢出
 int money = 1000000000;
 int years = 20;
 int day = 10;
 
 int total = money*years*day;
 System.out.println(total);
 //输出结果为负数,计算的时候溢出
 
 long total2 = money*years*day;
 System.out.println(total2);
 //输出的结果为负数,默认是int,转换之前已经存在问题了
 
 long total3 = money*((long)years)*day;
 System.out.println(total3);
 //输出的结果为正确答案,所以只需要先把一个书转换为long就可以解决