从数据结构中保存对象,然后将其从中删除 我是C++程序员,我现在正在学习java,当我想了解java的工作原理时,我很好奇…如果我将数据结构中的一个对象(如ArrayList)保存在变量中,然后删除该对象,该对象还会存在吗?由于将对象分配给变量会存储指向该对象的指针,因此一旦该对象被擦除,它将是空对象还是已擦除对象的副本
比如说从数据结构中保存对象,然后将其从中删除 我是C++程序员,我现在正在学习java,当我想了解java的工作原理时,我很好奇…如果我将数据结构中的一个对象(如ArrayList)保存在变量中,然后删除该对象,该对象还会存在吗?由于将对象分配给变量会存储指向该对象的指针,因此一旦该对象被擦除,它将是空对象还是已擦除对象的副本,java,Java,比如说 ArrayList list = new ArrayList<Object>(); Object object = list.getObject(...) list.remove(...) ArrayList list=new ArrayList(); Object Object=list.getObject(…) 列表。删除(…) 对象是否为空 这会改变人们的行为吗 ArrayList list = new ArrayList<Object>(); Obje
ArrayList list = new ArrayList<Object>();
Object object = list.getObject(...)
list.remove(...)
ArrayList list=new ArrayList();
Object Object=list.getObject(…)
列表。删除(…)
对象是否为空
这会改变人们的行为吗
ArrayList list = new ArrayList<Object>();
Object object = new Object();
object = list.getObject(...)
list.remove(...)
ArrayList list=new ArrayList();
对象=新对象();
object=list.getObject(…)
列表。删除(…)
java的可能副本没有指针,所有内容都作为值和引用传递,只是在本例中它是引用的值。似乎是的,对象仍然存在,因为您只是更改变量引用的值,但不需要更改实际引用本身。作为C/C++开发人员,我发现这种解释更容易(YMMV):Java中只有指针(除了基元类型),因为没有非指针,省略了*
。使用Object Object=new Object()
您有一个指向对象
实例的指针。使用另一个对象object2=新对象()
您可以比较object==object2
,并实际将指针与实例进行比较。您可以设置object=null如果你调用对象
上的方法,你甚至会得到一个空点异常
:-)除此之外,通常变量不会变成空
(当它们变成空时,搜索“弱”的情况)。