国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

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

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

問題描述

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

問題解答

回答1:

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

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

那么用什么方法來監聽一個對象是否被回收呢?當然用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('要死了要死了要死了!'); } }

執行結果:

要死了要死了要死了!null

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

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; } }

執行結果如下:

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

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

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

回答2:

不一定什么時候。那個對象類的析構函數不就可以么。

標簽: java
主站蜘蛛池模板: 成人a网站| 成人区在线观看免费视频 | 日韩 欧美 中文 亚洲 高清 在线 | 波多野在线播放 | 国产资源在线免费观看 | 亚洲午夜a | 成人免费小视频 | 韩国美女高清爽快一级毛片 | 久久免费视频观看 | 亚洲欧美日韩综合在线一区二区三区 | 国产成版人视频网站免费下 | 国产精品免费一区二区三区四区 | chinese多姿势videos | 国产黄色美女 | 日本精品高清一区二区不卡 | 日韩国产在线播放 | 国产精品香蕉一区二区三区 | 欧美一级va在线视频免费播放 | 好看欧美视频高清va | 久久高清免费视频 | 一本一道久久综合狠狠老 | 欧美成人欧美激情欧美风情 | 日本一区毛片免费观看 | 久久精品久久精品 | 免费一级做a爰片久久毛片 免费一级做a爰片性色毛片 | 欧美一级日韩在线观看 | 亚洲精品理论 | 日本www高清免费视频观看 | 美日韩一区二区 | 欧美成人看片一区二区三区尤物 | 亚洲美女视频在线 | 国产成人精品视频一区二区不卡 | 国产三级在线观看视频 | 韩国一级黄色大片 | 免费成人高清视频 | 亚洲美女高清aⅴ视频免费 亚洲美女黄色片 | 在线免费观看国产视频 | 久揄揄鲁一二三四区高清在线 | 欧美一级片免费看 | 91 久久 | 中文字幕在线观看日韩 |