Java中 arraylist.add() 添加进arraylist中的是引用还是赋值
看arraylist.add()的源码,感觉应该添加的是引用,但是怎么跟我的运行结果不一样呢,这是我的测试代码:ArrayList<Test>list=newArrayL...
看arraylist.add()的源码,感觉应该添加的是引用,但是怎么跟我的运行结果不一样呢,这是我的测试代码:
ArrayList<Test> list = new ArrayList<>();
for(int i=0;i<10;++i){
Test obj = new Test();
obj.a=i;
list.add(obj);
obj=null;
System.gc();
}
System.out.println(list);
}
Test.java代码 :
public class Test
{
public int a;
@Override
public String toString()
{
return ""+a;
}
}
为什么输出的是[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
arraylist.add()的源码是:
public boolean add(E e) {
ensureCapacityInternal(size + 1); // Increments modCount!!
elementData[size++] = e;
return true;
} 展开
ArrayList<Test> list = new ArrayList<>();
for(int i=0;i<10;++i){
Test obj = new Test();
obj.a=i;
list.add(obj);
obj=null;
System.gc();
}
System.out.println(list);
}
Test.java代码 :
public class Test
{
public int a;
@Override
public String toString()
{
return ""+a;
}
}
为什么输出的是[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
arraylist.add()的源码是:
public boolean add(E e) {
ensureCapacityInternal(size + 1); // Increments modCount!!
elementData[size++] = e;
return true;
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询