java如何让一个对象为null_将Java对象设置为null会不会做任何事情?
這取決于一點(diǎn),當(dāng)你想到nulling引用。
如果你有一個(gè)對(duì)象鏈A-> B-> C,那么一旦A不可達(dá),A,B和C都將有資格進(jìn)行垃圾回收(假設(shè)沒有其他指的是B或C)。例如,沒有必要,并且從來沒有任何需要,將參考A→B或B→C顯式地設(shè)置為空。
除此之外,大多數(shù)時(shí)候這個(gè)問題并不真的出現(xiàn),因?yàn)樵诂F(xiàn)實(shí)中你正在處理集合中的對(duì)象。你通常應(yīng)該總是通過調(diào)用適當(dāng)?shù)膔emove()方法來從列表,地圖等中刪除對(duì)象。
其中曾經(jīng)存在一些建議來設(shè)置對(duì)null的引用的情況具體地在長(zhǎng)期的范圍內(nèi),其中內(nèi)存密集型對(duì)象停止在范圍中途使用。例如:
{
BigObject obj = ...
doSomethingWith(obj);
obj = null;
doSomethingElse();
}
這里的理由是因?yàn)閛bj仍在范圍內(nèi),那么沒有顯式的引用的nulling,直到doSomethingElse()方法完成后才會(huì)被垃圾收集。這是可能不再適用于現(xiàn)代JVM的建議:事實(shí)證明,JIT編譯器可以在什么時(shí)候不再使用給定的本地對(duì)象引用。
總結(jié)
以上是生活随笔為你收集整理的java如何让一个对象为null_将Java对象设置为null会不会做任何事情?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java实验 输入输出流_java实验七
- 下一篇: java 日志输出 上下文_java –