從Java in a Nutshell, 2.10 Reference Types,Java中的基元包裝類作爲引用類型處理?
Java不直接操作對象和數組。相反,它操縱對對象和數組的引用。因爲Java通過引用處理對象和數組,所以類和數組類型被稱爲 引用類型。相比之下,Java直接或通過值處理原始類型 類型的值。
但從以下,看來原始的包裝類(對象)實際上是由價值而不是引用處理,
> Integer foo = new Integer(1);
> Integer bar = foo;
> bar = new Integer(2);
> foo
1
所以這是真的,從上面的報價是不完全正確?
UPDATE:我的困惑來自誤解像下面的我的代碼段以上和東西之間的區別來了:
> import java.util.LinkedList;
> LinkedList<Integer> foo = new LinkedList<Integer>();
> foo.add(1);
> LinkedList<Integer> bar = foo;
> bar.remove();
> System.out.println(foo.size());
0
> System.out.println(bar.size());
0
凡在後一種情況下,bar.remove()
在LinkedList的實際操作,其foo
和bar
參考。
您分配給'bar',而'foo'不變。這不區分參考和值。 – 2014-12-03 22:46:36