黑马程序员技术交流社区
标题:
装箱拆箱的实际过程
[打印本页]
作者:
BlackHorse001
时间:
2015-9-7 09:02
标题:
装箱拆箱的实际过程
装箱拆箱的实际过程
关于自动装箱,相信大部分人都明白是怎么一回事,但真的完全明白了嘛?
先看下面的代码:
Short s1 = 1;
Short s2 = s1;
System.out.println(s1 == s2);
谁都知道当然打印true了。现在加一句试试:
Short s1 = 1;
Short s2 = s1;
s1++;
System.out.println(s1 == s2);
还是true吗?No,这次输出成了false。WHY?难道s1和s2引用的不是同一个对象吗?有这些疑问的说明你对自动装箱拆箱的过程还不是非常清楚,实际上上面的代码可以翻译为下面的代码(实际执行过程,要掌握):
Short s1 = new Short((short)1);
Short s2 = s1;
short tempS1 = s1.shortValue();
tempS1++;
s1 = new Short(tempS1);
System.out.println(s1 == s2);
哦,原来如此,这下明白了,因此我们在使用自动装箱的时候小心点为妙。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2