java项目中对象第二次创建时,第一个对象为什么还存在

可能我问题提的不太清楚,我举个例子
比如一个类
public class A{
private List list = new ArrayList();
public void add(){
list.add("abv");
}
public void tell(){
System.out.print(list.size());
}
}

在其他地方调用

A a = new A();
a.add();
Thread.sleep(5000);
A aa = new A();
aa.tell(); //为什么这里 aa没有add 但是 list却有数据呢

请教下大家 谢谢

看你这么一问 我也很疑惑、

但是我把你代码拷贝下来

一运行 输出 0

aa 对象里的list并没有数据

我把代码运行了一下输出为0,说明list没有数据啊

你初始化了两个A对象,在第一个里面调用了add访问,后来的创建aa并没有调用add方法,里面也就没有值。

你这里的list数据是因为第一次a.add()添加的 ,在内存中没有回收释放,当然有数据了

第二次初始化aa,是在内存中新创建了一个空间,list并没有值