居于lz的问题,楼上的都回答的很好。我想lz更清晰用占用内存大小去理解会比较容易。
计算机内部是由无数个二进制数构成的,一个字节(byte)=8位(bit)二进制数,
所以,1byte=8bit,1short=2*8bit 1int=4*8bit,1long=8*8bit ...
如代码:short s=s+2,2默认为int类型,short 是2个8位,int 是4个8位,2个8位的short自动提升到4个8位(内存空间必须大小一致)就变成int类型,当左右两边类型不一致时,编译出错,要得到左边的short类型,就必须降低精度,强制提升后int类型转换成short类型。
|