隐式数据类型的转换
取值范围小的数据类型与取值范围大的数据类型进行运算时,会先将小的数据类型提升为大的,再运算

微信图片_20201117201130.png

  1. /*
  2. +:是一个运算符,做加法运算的。
  3. 我们在做运算的时候,一般要求参与运算的数据类型必须一致。
  4. 类型转换:
  5. 隐式转换
  6. 强制转换
  7. 隐式转换
  8. byte,short,char -- int -- long -- float -- double
  9. */
  10. public class TypeCastDemo {
  11. public static void main(String[] args) {
  12. //直接输出了运算的结果
  13. System.out.println(3 + 4);
  14. //定义两个int类型的变量
  15. int a = 3;
  16. int b = 4;
  17. int c = a + b;
  18. System.out.println(c);
  19. //定义一个byte类型,定义一个int类型
  20. byte bb = 2;
  21. int cc = 5;
  22. System.out.println(bb + cc);
  23. //我能不能不直接输出,用一个变量接受呢?
  24. //用变量接受,这个变量应该有类型
  25. //可能损失精度
  26. //byte dd = bb + cc;
  27. int dd = bb + cc;
  28. System.out.println(dd);
  29. }
  30. }

强制类型数据转换

强制转换的格式
例:int B = 10;
System.out.println((float)B);
输出的结果为10.0

强制转换的注意事项
如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同
例:short i = 129;
System.out.println((byte)i) ;
输出的结果为-127
因为129超出了 byte 的取值范围,则用129减去256得到-127
以此类推 i = 300 转换为 byte 后的结果为44