Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从数据结构中保存对象,然后将其从中删除 我是C++程序员,我现在正在学习java,当我想了解java的工作原理时,我很好奇…如果我将数据结构中的一个对象(如ArrayList)保存在变量中,然后删除该对象,该对象还会存在吗?由于将对象分配给变量会存储指向该对象的指针,因此一旦该对象被擦除,它将是空对象还是已擦除对象的副本_Java - Fatal编程技术网

从数据结构中保存对象,然后将其从中删除 我是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对象
上的方法,你甚至会得到一个
空点异常
:-)除此之外,通常变量不会变成
(当它们变成空时,搜索“弱”的情况)。