关于java基础语法的问题...

来源:百度知道 编辑:UC知道 时间:2024/05/23 18:50:54
short ss=10;
ss=ss+1;这句有错。

short ss=10;
sa+=1;这句正确? 正确吗? 看书上写的,我想书上错了吧。

ss = ss+1;//这句会报错

ss+1的运算结果是int型的

int型占32位(即4个字节)

short类型占16位(即2个字节)

如果需要把int转换成short需要强制类型转换

ss = (short)(ss+1);//这样才可以

sa从哪来的?都没有声明,可能印错了,ss打成sa了

ss=ss+1;
这句计算机认为 ss[short] + 1[int] 变成int类型的11放在 内存的新空间中, 然后ss 指向这新的空间。但是ss是short(16bit)而新空间的int(32bit),当然出错了。

ss+=1;
这句计算机认为,ss本身加1, 1是以二进制形式相加。而且ss溢出也会变成取负加1。所以可以证明,+= 是以二进制形式相加的。

short 是短整形,占2字节,1是整形,占4个字节,用ss=ss+1时意思是把4字节的int写入2字节的short,这怎么可能。
short ss=10;
sa+=1;

下面是ss还是sa啊??

如果是ss+=1,那我还真不理解 。

上面正确,下面的错了。
下面的跟本没有SA变量,怎么可以运算呢~~
不要相信书上的,书上的东西也有很多错的。。

...代码写出来测试下就明白了啊

没有写错的 是正确的。