av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

垃圾回收 - java 如何手動(dòng)回收對(duì)象

瀏覽:114日期:2023-12-04 16:56:47

問(wèn)題描述

先上代碼吧,我的目的是讓data這個(gè)數(shù)據(jù)徹底消失

public class Test { public static void main(String[] args) {Data data = new Data();data.num = 10;Data new1 = data;Data new2 = data;new2 = null;data = null;System.out.println(new1.num); }}class Data { int num;}

我知道java的垃圾回收機(jī)制,只有有東西還在引用他,他就不會(huì)消失,像上面的代碼依然能夠正常輸出10. 但是我想知道該怎么做,能讓System.out.println(new1.num);拋出null異常,即徹底沒(méi)有這個(gè)數(shù)據(jù) 不要說(shuō)讓new1=null就行

問(wèn)題解答

回答1:

你自己都說(shuō)了'我知道java的垃圾回收機(jī)制,只有有東西還在引用他,他就不會(huì)消失', 'new1'這個(gè)變量還在引用 'new Data()'在堆里那塊內(nèi)存,怎么可能會(huì)讓他被回收,這樣我們寫(xiě)的代碼不全是空指針異常。你可以使用WeakReference,而不是強(qiáng)引用。

WeakReference<Data> new1 = new WeakReference(data); Data new2 = data; new2 = null; data = null; System.gc();//告訴垃圾收集器打算進(jìn)行垃圾收集,而垃圾收集器進(jìn)不進(jìn)行收集是不確定的 ,所以下面延遲2秒 try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(new1.get().num);回答2:

System.gc();

建議JVM執(zhí)行g(shù)c,有可能完全被拒絕。 GC本身是會(huì)周期性的自動(dòng)運(yùn)行的,由JVM決定運(yùn)行的時(shí)機(jī),而且現(xiàn)在的版本有多種更智能的模式可以選擇,還會(huì)根據(jù)運(yùn)行的機(jī)器自動(dòng)去做選擇,就算真的有性能上的需求,也應(yīng)該去對(duì)GC的運(yùn)行機(jī)制進(jìn)行微調(diào),而不是通過(guò)使用這個(gè)命令來(lái)實(shí)現(xiàn)性能的優(yōu)化。

回答3:

有對(duì)象引用即將刪除的對(duì)象仍然可以置為null

{OutClass outClass1 = new OutClass();OutClass outClass2 = new OutClass();outClass2.outClass = outClass1;outClass1 = null;System.out.print(outClass1); }class OutClass {public OutClass outClass; }回答4:

在你沒(méi)有理解JMM原理之前,千萬(wàn)不要亂用System.gc(),對(duì)象用完obj=null;就可以了。

回答5:

答案是不能,這屬于JVM規(guī)范中未定義的行為,開(kāi)發(fā)者不應(yīng)該試圖手動(dòng)的去幫助虛擬機(jī)回收一個(gè)對(duì)象。如果是sun的JDK,好像有一個(gè)unsafe的包,不過(guò)我沒(méi)用過(guò),不知道有沒(méi)有這樣的API。

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 在线视频中文字幕 | 成人乱人乱一区二区三区软件 | 色婷婷综合久久久中字幕精品久久 | 成人久久网| 国产高清亚洲 | 超碰网址| 亚洲精品久久久久中文字幕欢迎你 | 欧洲av一区 | 91一区二区 | 精品久久久久久国产 | 久久国产区 | 在线观看特色大片免费网站 | 日韩精品区 | 免费看国产一级特黄aaaa大片 | 国产av毛片| 欧美日韩中文在线 | 国产精品一区二区三区在线 | 欧美一级黄视频 | 日韩影音 | 欧美一区二区在线播放 | 日本黄色大片免费 | 欧美日日 | 久久久久久久久久久久久9999 | 国产精品欧美一区二区三区 | 精品国产一区二区国模嫣然 | 九九av| 欧洲妇女成人淫片aaa视频 | 在线观看免费av网 | 国产美女久久久 | 成人精品一区二区户外勾搭野战 | 欧美精品一区二区在线观看 | 午夜精品一区二区三区在线视频 | 中国美女撒尿txxxxx视频 | 欧美成人一区二免费视频软件 | 高清一区二区三区 | 久一久| 成人羞羞国产免费视频 | 国产亚韩| 亚洲国产精品激情在线观看 | 天天操天天舔 | 成人久久久 |