中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中怎么實現垃圾強制回收

發布時間:2021-06-11 15:50:30 來源:億速云 閱讀:180 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關Java中怎么實現垃圾強制回收,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

一 點睛

當一個對象失去引用后,系統何時調用它的finalize()方法對它進行資源清理,何時它可以變成不可達狀態,系統何時回收它占有的內存,對于程序完全透明。程序只能控制一個對象不再被任何引用變量引用,不能控制它何時被回收。

程序可以強制系統進行垃圾回收——這種強制只是通知系統進行垃圾回收,但系統是否進行垃圾回收依然不能確定。大部分時候,程序強制垃圾回收后總是有一些效果

強制系統垃圾回收有如下兩個方法:

  • 調用System類的gc()靜態方法:System.gc()

  • 調用Runtime對象的gc()實例方法:Runtime.getRuntime().gc()

二 不強制進行垃圾回收代碼

1 代碼

public class GcTest
{
  public static void main(String[] args)
  {
   for (int i = 0 ; i < 1; i++)
   {
     new GcTest();
   }
  }
  public void finalize()
  {
   System.out.println("系統正在清理GcTest對象的資源...");
  }
}

2 運行

程序運行無任何結果。

3 說明

程序創建了1個匿名對象,這個對象在創建之后立即進入可恢復狀態,等待系統回收,但直到程序退出,系統依然不能回收該資源。

三 強制垃圾回收代碼

1 代碼

public class GcTest
{
  public static void main(String[] args)
  {
   for (int i = 0 ; i < 1; i++)
   {
     new GcTest();
     // 下面兩行代碼的作用完全相同,強制系統進行垃圾回收
     // System.gc();
     Runtime.getRuntime().gc();
   }
  }
  public void finalize()
  {
   System.out.println("系統正在清理GcTest對象的資源...");
  }
}

2 運行

系統正在清理GcTest對象的資源...

3 說明

該打印說明強制垃圾回收起了作用。

命令行執行如下語句后,可以看到垃圾回收前、回收后的內存占用對比。

E:\Java\IDEA_Java\out\production\IDEA_Java>java -verbose:gc GcTest
[GC (System.gc())  2621K->760K(251392K), 0.0009908 secs]
[Full GC (System.gc())  760K->670K(251392K), 0.0040659 secs]
系統正在清理GcTest對象的資源...

運行結果顯示了程序強制垃圾回收的效果,但這種強制只是建議系統立即進行垃圾回收,系統完全有可能并不立即進行垃圾回收,垃圾回收機制也不會對程序的建議完全置之不理;垃圾回收機制會在收到通知后,盡快進行垃圾回收。

關于Java中怎么實現垃圾強制回收就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

富民县| 庆元县| 广宁县| 花莲县| 延寿县| 临汾市| 麻城市| 烟台市| 惠来县| 平原县| 图们市| 勃利县| 黎平县| 嘉祥县| 漾濞| 兴安县| 东丽区| 晴隆县| 象山县| 盈江县| 邳州市| 合山市| 榆林市| 西青区| 滁州市| 黄山市| 远安县| 当阳市| 高邮市| 揭阳市| 桂平市| 汨罗市| 宁都县| 阿城市| 伊吾县| 察雅县| 桃源县| 务川| 绥阳县| 胶南市| 晋州市|