拳击后我们可以将基本包装类作为参考类型吗?关于拳击的澄清
我也知道AtomicInteger
,AtomicLong
,AtomicBoolean
和AtomicReference<V>
是可变的。
Integer age = new Integer(23);
Integer old = age;
System.out.println("Age : "+age);
System.out.println("Old : "+ old);
System.out.println("*************");
age = 24;
System.out.println("Age : "+age);
System.out.println("Old : "+ old);
结果
Age : 23
Old : 23
After update ****
Age : 24
Old : 23
我认为,原始的,它的包装是不可变的。 但这里拳击的意义\目的是什么?
维基百科复制:
拳击,也被称为包装,是放置一个基本类型的对象内的过程中,使得原始可以用作参考对象。
我同意你的看法,原始的和它的包装是不变的。但这里拳击的意义\目的是什么? 复制自维基百科 “拳击,也称为包裹,是在对象中放置原始类型的过程,这样该原语可以用作参考对象。” – BDR
@BalajiReddy在这个特定情况下它没有区别。你需要拳击的最常见的地方是当你想在集合中使用基元。由于Java集合仅包含引用对象,因此可以通过将您的基元“装箱”为包装来解决此限制。 Autoboxing可以让你隐式地做到这一点(你在'age = 24;'作业中的做法)。 – dasblinkenlight
明白了你的观点。我也想补充“原语”不是OOP的一部分!当我做拳击时,我将值类型转换为引用类型。如果我真的在这里然后“例如,发送一个包装的int到一个方法,在那里修改它,并期望调用者看到原始包装的修改”这应该是可能的权利(概念上讲).. – BDR