日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

Java9垃圾回收方法finalize() 原理解析

瀏覽:79日期:2022-09-05 11:47:48

1: finalize() 方法

finallize() 方法是Object類的方法, 用于在類被GC回收時 做一些處理操作, 但是JVM并不能保證finalize(0 ) 方法一定被執行,由于finalize()方法的調用時機具有不確定性,從一個對象變得不可到達開始,到finalize()方法被執行,所花費的時間這段時間是任意長的。我們并不能依賴finalize()方法能及時的回收占用的資源,可能出現的情況是在我們耗盡資源之前,gc卻仍未觸發,因而通常的做法是提供顯示的close()方法供客戶端手動調用所以一般不建議使用finalize 方法, JDK9 開始已久被廢除

總結缺點

1: finalize機制本身就是存在問題的。

2:finalize機制可能會導致性能問題,死鎖和線程掛起。

3:finalize中的錯誤可能導致內存泄漏;如果不在需要時,也沒有辦法取消垃圾回收;并且沒有指定不同執行finalize對象的執行順序。此外,沒有辦法保證finlize的執行時間。遇到這些情況,對象調用finalize方法只有被無限期延后

- 觀察finalize方法延長類生命周期#

class User{ public static User user = null; @Override protected void finalize() throws Throwable { System.out.println('User-->finalize()'); user = this; } } public class FinalizerTest { public static void main(String[] args) throws InterruptedException { User user = new User(); user = null; System.gc(); Thread.sleep(1000); user = User.user; System.out.println(user != null);//true user = null; System.gc(); Thread.sleep(1000); System.out.println(user != null);//false }}

- JDk9 以前的垃圾回收代碼

public class Finalizer { @Override protected void finalize() throws Throwable { System.out.println('Finalizer-->finalize()'); } public static void main(String[] args) { Finalizer f = new Finalizer(); f = null;System.gc();//手動請求gc }}//輸出 Finalizer-->finalize()

2:Cleaner類的使用

簡介:

在Java9 以后 提供了最終類Clear來代替實現,下面看一下官方例子

package Thread;import java.lang.ref.Cleaner;public class CleaningExample implements AutoCloseable{ private final static Cleaner CLEANER=Cleaner.create();// 創建者模式創建對象 static class State implements Runnable{ // 清理對象 下面說 State() { System.out.println('init'); } @Override public void run() { System.out.println('close'); } } private final State state; private final Cleaner.Cleanable cleanable; // clearner 中的接口 實現唯一的清理方法 public CleaningExample() { super(); this.state = new State(); this.cleanable=CLEANER.register(this, state); // 注冊清理容器中 并且需要清理對象的引用 } @Override public void close() throws Exception { cleanable.clean(); //進行清理操作 } public static void main(String[] args) { while(true) { new CleaningExample(); } }}

上面可以看出:

Cleaner 是最終類 不能被重寫, 內部方法基本以靜態方法提供 掌握例子上面的方法即可

重點指出

static class State implements Runnable

如果直接在類中直接定義實現, 必須提供一個靜態內部類 (強制),否者不能進行回收 原因(: 普通內部類 局部內部類 對于外部類有依賴(引用),無法真正實現內存的釋放 ) 可以選擇直接定義外部類 (較為復雜,需要傳遞清理引用 Cleanable)

什么時候被回收?

* 1. 注冊的Object處于幻象引用狀態

* 2. 顯式調用 clean 方法

實際例子(模版)

public class CleaningExample extends Thread implements AutoCloseable { private final static Cleaner CLEANER = Cleaner.create(); private final State state; private final Cleaner.Cleanable cleanable; public CleaningExample() { this.state = new State(); this.cleanable = CLEANER.register(this, state); } @Override public void close() throws Exception { cleanable.clean(); } @SuppressWarnings('resource') public static void main(String[] args) { while (true) { CleaningExample example = new CleaningExample(); } } // 模擬業務請求 @Override public void run() { System.out.println('數據庫 海量 查詢請求 ................'); } // 清理模版 class State implements Runnable { State() { System.out.println('<--- init --->'); } @Override public void run() { System.out.println('<--- close --->'); } }}

實現基礎

/** * Heads of a CleanableList for each reference type. */ final PhantomCleanable<?> phantomCleanableList; final WeakCleanable<?> weakCleanableList; final SoftCleanable<?> softCleanableList; // The ReferenceQueue of pending cleaning actions final ReferenceQueue<Object> queue;

在CleanerImpl 類進行clearner類的最終實現,看以看到定義的這些個字段,基本上明確了 他的基本原理

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久不射网站| 神马久久午夜| 黄页网站一区| 激情欧美日韩一区| 91精品国产自产在线观看永久∴| 久久精品三级| 国产中文欧美日韩在线| 欧美国产小视频| 国产激情久久| 精品久久电影| 久草免费在线视频| 久久视频一区| 尤物精品在线| 久久亚洲欧洲| 亚洲另类黄色| 欧美一区二区三区免费看| 日韩动漫一区| 国产福利亚洲| jizzjizz中国精品麻豆| 日韩黄色大片| 九色porny丨国产首页在线| 丁香六月综合| 视频一区中文| 久久久夜精品| 激情综合网站| 免费国产亚洲视频| 91欧美极品| 久久精品国产免费| 久久男人av资源站| 免费成人网www| 久久成人国产| 91亚洲精品视频在线观看| 久久超级碰碰| 日本免费久久| 野花国产精品入口| 亚洲乱码一区| 欧美激情99| 亚洲综合在线电影| 国产精品美女| 国产一区 二区| 女生影院久久| 久热综合在线亚洲精品| 国产精品亚洲片在线播放| 中文字幕成在线观看| 波多野结衣一区| 日韩成人精品一区二区三区| 精品国产一区二区三区噜噜噜| 亚洲手机在线| 欧美亚洲色图校园春色| 久久男人天堂| 亚洲日韩视频| 精品一区二区三区亚洲| 伊人久久大香线蕉av不卡| 亚洲丝袜美腿一区| 精品一区二区三区免费看| 99精品视频在线观看免费播放| 香蕉久久一区| 亚洲黄色免费av| 蜜臀国产一区二区三区在线播放| 日本免费在线视频不卡一不卡二| 国产成年精品| 日韩午夜精品| 精品三区视频| 久久性天堂网| 欧美精品日日操| 亚洲a成人v| 98精品久久久久久久| 欧美三级第一页| 亚洲另类视频| 亚洲综合电影| 无码日韩精品一区二区免费| 日韩综合精品| 国产精品视频3p| 亚洲成人一区在线观看| 日本欧美一区二区| 久久久久国产精品一区三寸| 日本成人在线不卡视频| 欧美手机在线| 久久精品一区二区国产| 国产日韩综合| 麻豆精品在线观看| 亚洲综合另类| 黄毛片在线观看| 日本精品在线播放| 三上亚洲一区二区| 国产日韩一区二区三免费高清 | 日韩一级欧洲| 精品国产乱码久久久久久樱花| 伊人久久婷婷| 成人国产精品久久| 日本午夜精品久久久| 午夜精品网站| 青青青免费在线视频| 欧美啪啪一区| 一区二区三区国产在线| 91精品亚洲| 久久亚洲黄色| 亚洲精品影视| 国产手机视频一区二区| 国产伦久视频在线观看| 欧美精品中文字幕亚洲专区| 亚洲综合电影一区二区三区| 日韩在线高清| 久久久精品区| 国产乱码精品一区二区三区亚洲人| 久久午夜影视| 黑丝一区二区三区| 欧美 日韩 国产精品免费观看| 国产精品99久久精品| 久久精品国产网站| 麻豆精品新av中文字幕| 国产精品高清一区二区| 日本欧美一区二区| 少妇精品久久久| 日韩精品一区二区三区av| 亚洲日产av中文字幕| 亚洲精品看片| 亚洲精品影院在线观看| 日本在线视频一区二区| 日韩激情精品| 国产精品伦一区二区| 国产免费av一区二区三区| 国产精品麻豆成人av电影艾秋| 国产欧美午夜| 另类综合日韩欧美亚洲| 精品伊人久久| 最新中文字幕在线播放| 中文字幕在线看片| 国产乱码午夜在线视频| 老司机精品视频在线播放| 日韩精品导航| 欧美精品中文字幕亚洲专区| 亚洲专区在线| 蜜桃一区二区三区在线| 精品1区2区3区4区| 91精品国产福利在线观看麻豆| 91伊人久久| 国产精品22p| 久久激情五月激情| 日本va欧美va精品| 亚洲精品伦理| 首页欧美精品中文字幕| 99亚洲精品| 99日韩精品| 亚洲欧美日韩在线观看a三区 | 风间由美中文字幕在线看视频国产欧美| 日韩精品欧美大片| 日韩国产91| 嫩呦国产一区二区三区av| 欧美一区不卡| 欧美一级一区| 久久国产精品免费一区二区三区| 日韩欧美激情| 国产精品久久久久久久久免费高清 | 婷婷精品在线观看| 亚洲乱码视频| 国产欧美日韩一区二区三区四区 | 99久久九九| 久久久国产亚洲精品| 久久国产精品亚洲77777| 巨乳诱惑日韩免费av| 日韩中文欧美在线| 日本不卡不码高清免费观看 | 久热综合在线亚洲精品| 一区二区三区午夜视频| 一区二区三区国产在线| 免费在线成人网| 国产精品xxxav免费视频| 国产成人精选| 色婷婷久久久| 婷婷激情综合| 蜜桃伊人久久| 久久精品国产精品亚洲毛片| 国产一区二区三区四区大秀| 国产亚洲精品美女久久| 欧美精品91| 激情黄产视频在线免费观看| 欧美精品资源| 精品国产91| 久久精品高清| 蜜臀久久久99精品久久久久久| 日韩精品免费视频人成 | 亚洲综合婷婷| 国产白浆在线免费观看| 在线视频观看日韩| 夜夜嗨一区二区| 国产精品22p| 悠悠资源网久久精品| 国产精品一区二区av日韩在线| 视频在线观看一区| 欧美国产偷国产精品三区| 亚洲欧美日本国产| 伊人成人在线视频| 亚洲午夜天堂| 青青青免费在线视频| 国产精品v日韩精品v欧美精品网站| 国产午夜精品一区二区三区欧美 | 国产极品嫩模在线观看91精品| 韩国一区二区三区视频| 精品视频高潮|