我有这个代码。但我不知道如何解释结果:
ArrayList<String> first = new ArrayList<String>();
first.add("1");
first.add("2");
first.add("3");
ArrayList<String> second = new ArrayList<String>();
second = first;
System.out.println("before modified:"+second.size());
second.clear();
System.out.println("after modified:");
System.out.println(" First:"+first.size());
System.out.println(" Second:"+second.size());
结果将是:3 / 0 /0
我不知道的问题是:当您分配时first = second;
,第一个和第二个数组都将指向同一个对象(1,2 和 3)。在clear
第二个数组上的所有元素之后,第二个数组和这些对象之间的所有引用都会丢失(这里没问题)。
我不知道的是:但这些对象(1,2 和 3)仍然持有对第一个数组的引用。为什么第一个数组的大小为 0。
请为我解释。
谢谢 :)