Fra*_*ani 5 java null reference
如果我这样做会发生什么:
Object obj = new Object();
obj = null;
Run Code Online (Sandbox Code Playgroud)
它是从内存中删除对象还是仅清除引用?
更正式地,考虑代码:
Object obj = new Object();
Object temp = obj;
obj = null;
Run Code Online (Sandbox Code Playgroud)
为什么temp还没有null?它不应该从记忆中删除吗?
Yas*_*jaj 14
在你的第一个例子中:
obj -------> |OBJECT|
Run Code Online (Sandbox Code Playgroud)
设置obj为null:
obj |OBJECT|
Run Code Online (Sandbox Code Playgroud)
不存在对该对象的引用,因此它"不存在",因为它已无法访问.
在你的第二个例子中:
obj -------> | |
|OBJECT|
temp ------> | |
Run Code Online (Sandbox Code Playgroud)
设置obj为null:
obj | |
|OBJECT|
temp ------> | |
Run Code Online (Sandbox Code Playgroud)
您可以看到temp仍然引用该对象,因此它仍然"存在".
| 归档时间: |
|
| 查看次数: |
4078 次 |
| 最近记录: |