我们输入以下代码:
public class DataType07 { public static void main(String[]args){ byte b1 = 4; byte b2 = 5; byte b3 = b2 + b1; System.out.println(b3); } }
在命令行编译如下:
我们发现报错了,不兼容的类型,程序运行的时候,会将b1和b2转换成iint类型,然后再做加法运算。
所以我们应该这样做,输入以下代码:
public class DataType07 { public static void main(String[]args){ byte b1 = 4; byte b2 = 5; //byte b3 = b2 + b1; error 不兼容的类型,程序运行的时候,会将b1和b2转换成iint类型,然后再做加法运算。 //System.out.println(b3); byte b3 = (byte)(b1+b2); System.out.println(b3); } }
命令行解释如下:
我们是把b1+b2强制转换成了byte类型。
在输入以下这段代码:
public class DataType07 { public static void main(String[]args){ byte b1 = 4; byte b2 = 5; //byte b3 = b2 + b1; error 不兼容的类型,程序运行的时候,会将b1和b2转换成iint类型,然后再做加法运算。 //System.out.println(b3); byte b3 = (byte)(b1+b2); System.out.println(b3); byte b4 = 10; byte s1 = 5; int i1 = b4 + s1 ; System.out.println(i1); } }
命令行结果为:
我们可以看到是没有报错的,因为程序会默认把byte类型的数字与short类型的数字自动转换成int类型。
原文地址:https://www.cnblogs.com/Chamberlain/p/11117649.html
时间: 2024-10-08 03:33:28