Java中关于自动装箱的小知识

Interger one = 100;
Interger Two = 200;
上述两行代码都是自动装箱,但第一行代码实际上执行的是:
Interger One = Integer.valueOf(100);
当我们再次对100进行自动装箱时:
Integer Tree = 100;
Tree和One会是同一个引用,One==Tree为true。

而第二行执行的代码是:
Integer Two = new Integer(200);
当我们再次对200进行自动装箱时:
Integer Four = 200;
会再次执行new操作,所以Two == Four为false。

产生这种结果的原因是 :
当参数在-128到127之间时,会从常量池判断有没有该数据,若有则直接产生;若没有,则实例化Integer。
注意:Double和Float不具有常量池的功能。

猜你喜欢

转载自blog.csdn.net/weixin_42894596/article/details/82144780