直接上代码:
public class Demo{
public static void main(String[] args) {
short c = 10;
byte d = 8;
System.out.println((String)(c + d)); //int
}
}
从idea提示的信息可以得出c+d转成了int类型
那么为什么会这样呢?要知道原因只能查看源码
以上截图为部分截图,可以看到并没有参数类型为byte或者short的println方法,由此可以得出能接收short类型数据和byte类型的数据只有print(int i)方法
所以得出结论:short或者byte类型的数据在println方法自动转换为int类型
以上代码:c+d=short类型 System.out.println(c+d) short转为int