从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