首先我知道Java在涉及到byte,short和char的运算时会把这些值转换为int类型,然后对int类型值进行运算,最后得到int类型结果。。
那么问题来了,下面是我在书上看到的面试题,我想知道为什么不是两个答案都错×而只是B。。求各路大神帮忙解答

首先我知道Java在涉及到byte,short和char的运算时会把这些值转换为int类型,然后对int类型值进行运算,最后得到int类型结果。。
那么问题来了,下面是我在书上看到的面试题,我想知道为什么不是两个答案都错×而只是B。。求各路大神帮忙解答

因为int表示的范围比short大,所以任何short转换成int都没事,反过来,int转short就可能出错。
所以前者可以自动转换,后者需要程序员强制转换,java这么设计是为了防呆。就好比usb插头,反过来差不进去一样的道理。