91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

札达县| 丹巴县| 拉萨市| 洛宁县| 怀远县| 娄烦县| 石屏县| 江都市| 贵州省| 大名县| 靖安县| 溆浦县| 阿图什市| 潜江市| 玉溪市| 元氏县| 泗洪县| 绍兴县| 丰县| 和林格尔县| 林州市| 金门县| 东阳市| 多伦县| 沧源| 华蓥市| 平阴县| 沁源县| 镇原县| 枣庄市| 伊通| 建瓯市| 会理县| 宜黄县| 九龙县| 和龙市| 白河县| 阜新市| 桦南县| 社旗县| 炎陵县|