亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

java類中的成員成員變量賦值之后什么時候會被回收,有什么辦法監(jiān)聽到某一個對象被回收嗎

瀏覽:95日期:2024-01-26 16:54:00

問題描述

java類中的成員成員變量賦值之后什么時候會被回收,有什么辦法監(jiān)聽到某一個對象被回收嗎

問題解答

回答1:

一個對象是否被回收并不是僅僅靠當前對象是否被引用這么簡單粗暴的方法去判斷。

JVM中判斷是否回收一個對象使用的是可達性分析算法,GC ROOT不可到達的節(jié)點都將會被標記上,一個對象如果被標記了兩次就會被回收掉。至于這個可達性分析算法你可以自行百度一下,原理是很簡單的。

那么用什么方法來監(jiān)聽一個對象是否被回收呢?當然用fianlize了;

請看代碼:

public class Test { private static Test TEST= null; public static void main(String args[]) {TEST = new Test();TEST = null;System.gc();try { Thread.sleep(500);} catch (InterruptedException e) { e.printStackTrace();}System.out.println(TEST); } @Override public void finalize() throws Throwable {System.out.println('要死了要死了要死了!'); } }

執(zhí)行結(jié)果:

要死了要死了要死了!null

那是不是執(zhí)行了finalize后,對象就一定會被回收呢?其實也不一定finalize調(diào)用時對象僅有一次拯救自己的機會,如下:

public class Test { private static Test TEST= null; public static void main(String args[]) {TEST = new Test();TEST = null;System.gc();try { Thread.sleep(500);} catch (InterruptedException e) { e.printStackTrace();}System.out.println(TEST);TEST = null;System.gc();try { Thread.sleep(500);} catch (InterruptedException e) { e.printStackTrace();}System.out.println(TEST); }@Override public void finalize() throws Throwable {System.out.println('要死了要死了要死了!');TEST = this; } }

執(zhí)行結(jié)果如下:

要死了要死了要死了!com.Test@1aa9f99null

可以看到在第一次垃圾回收時,在finalize方法給當前回收對象賦值給了新的引用,避免了被回收,不過finalize方法一個對象只能調(diào)用一次,在第二次回收時將不會被調(diào)用了。

從上述兩個例子中我們可以得出:finalize可以監(jiān)聽一個對象被回收,但是不能保證調(diào)用了finalize的對象一定會被回收,同時一個對象在第二次標記回收時是不會觸發(fā)finalize的!如果想絕對監(jiān)聽一個對象是否被回收,只有在JVM里面添加參數(shù)-XX:+PrintGCDetails分析GC日志咯

回答2:

不一定什么時候。那個對象類的析構(gòu)函數(shù)不就可以么。

標簽: java
主站蜘蛛池模板: 国产三级在线观看播放 | 欧美毛片在线观看 | 美女免费精品高清毛片在线视 | 黄色三级网站免费 | 国内成人精品视频 | 国产成人精品aaaa视频一区 | 免费视频亚洲 | 亚洲视频一二三 | 欧美日韩黄色大片 | 国产黄色在线免费观看 | 在线观看中文字幕第一页 | 极品国产一区二区三区 | 91福利一区二区三区 | 美国黄色片免费看 | 一级级黄| 国产精品无码久久久久 | 久操不卡| 美国人与性xxxxxxx | 一级毛片在线免费视频 | 国产在线日韩在线 | 国产欧美精品一区二区色综合 | 国产成人精品男人的天堂538 | 国模双双大尺度炮交g0go | 久久www免费人成看片入口 | 亚洲色图在线观看 | 日本一级毛片不卡免费 | 中文字幕成人乱码在线电影 | 欧美日韩精品一区二区三区视频 | 18美女福利视频网站免费观看 | 在线伊人 | 日韩一区二区久久久久久 | 1024手机在线播放 | 真人一级一级特黄高清毛片 | 欧美精品三区 | 婷婷综合七月激情啪啪 | 亚洲欧美久久婷婷爱综合一区天堂 | 国产日韩欧美在线一区二区三区 | 国产人成精品综合欧美成人 | 国产成在线观看免费视频成本人 | 亚洲综合无码一区二区 | 男女免费高清在线爱做视频 |