日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

具有Java 7中自动资源管理功能的GC

發布時間:2023/12/3 java 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 具有Java 7中自动资源管理功能的GC 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這篇文章簡要概述了Java 7中引入的稱為自動資源管理或ARM的新功能。 文章探討了ARM如何減少開發人員為有效釋放分配的資源的JVM堆而必須編寫的代碼。 Java編程語言中編程的最甜蜜之處之一是對象取消分配的自動處理。 在Java世界中,這通常被稱為垃圾收集。 基本上,這意味著開發人員不必擔心取消分配其代碼分配的對象。 開發人員使用完該對象后,他便可以使對該對象的所有引用無效,然后該對象就有資格進行垃圾回收。 但是,垃圾收集有其另一面。 與C / C ++中的編碼器完全控制內存分配和取消分配(malloc,free,new,delete等)不同,在Java中,開發人員對對象的取消分配過程沒有明顯的控制。 JVM管理未使用對象的垃圾回收過程,而運行一個垃圾回收周期實際上取決于JVM的想法。 確實,有諸如System.gc()或Runtime.getRuntime()。gc()之類的方法調用,它們指示將運行垃圾回收,但是這些方法僅用于提醒JVM:“也許您需要運行垃圾現在收集,只是一個建議,沒有壓力!”。 JVM被完全授權忽略這些請求,并且被編碼為僅在真正合適時運行垃圾回收。 因此,在實踐中,始終建議開發人員不要相信System.gc()或Runtime.getRuntime()。gc()將觸發完整的垃圾回收,從而不要構建其程序邏輯。 無可否認,自動垃圾收集為提高開發人員的生產力做了多少工作。 但是,在某些極端情況下,垃圾回收不足以保持“干凈”堆,其中沒有未使用的對象。 尤其是當對象處理由底層操作系統提供服務的某種形式的本機資源時。 這些對象包括但不限于IO流,數據庫連接等。對于此類對象,開發人員必須明確釋放資源。 通常,這些是通過try-catch塊完成的。 讓我們看一個小示例,該示例在完成流處理之后關閉InputStream: InputStream in = null;try {in = new FileInputStream(new File("test.txt");//do stuff with in } catch(IOException ie) {//SOPs } finally {//do cleanup } 以上看起來不錯,干凈; 但是,一旦我們嘗試通過finally塊中的in.close()關閉輸入流,就需要用try-catch塊將其包圍,該塊捕獲已檢查的異常IOException。 因此,代碼示例將轉換為: InputStream in = null;try {in = new FileInputStream(new File("test.txt"));//do stuff with in } catch(IOException ie) {//SOPs } finally {try{in.close();}catch(IOException ioe){//can't do anything about it} } 現在,上面的代碼看起來很腫,并且在不同層次結構中有多種檢查異常,我們需要更多的catch子句。 很快,代碼變得冗長且難以維護,更不用說代碼失去了其最初的簡潔外觀,甚至吸引了人們的目光。 但是有個好消息。 Java 7通過新的try-catch塊使此操作更容易。 使用此功能,我們可以避免finally塊本身。 這是我們的做法: try(InputStream in = new FileInputStream(new File("test.txt")) {//do stuff with in } catch(IOException ie) {//SOPs } 上面的代碼塊將自己進行清理。 通過引入新接口java.lang.AutoCloseable使其成為可能,該接口定義了單個方法void close()throws Exception 。 使用上述語法,可以自動關閉()d此接口子類型的對象。 以上功能適用于實現AutoCloseable接口的任何類的對象。 最好的部分是,即使我們在try()塊中初始化了多個AutoCloseable實例,它也會為所有對象調用close()方法,即使某個對象上的某些close()方法拋出任何異常。 在處理異常時,如果在try塊以及隱式finally塊(實際上已關閉AutoCloseable的塊)中存在任何IOException,則拋出的異常將是在try塊中拋出的異常而不是隱式的finally塊中的那個。 但是,我們仍然可以從Throwable.getSuppressed()方法中獲取隱式finally塊異常的詳細信息,該方法作為Java 7中的新方法添加。 我認為自動資源管理功能或ARM是Java 7的重要補充。 編碼愉快!

參考: Java HotSpot博客上的JCG合作伙伴 Swaranga提供了Java 7中具有自動資源管理功能的垃圾收集 。

相關文章 :
  • Java 7:嘗試資源
  • 速覽Java 7 MethodHandle及其用法
  • Java Fork / Join進行并行編程
  • JDK中的設計模式
  • Java最佳實踐

翻譯自: https://www.javacodegeeks.com/2011/08/gc-with-automatic-resource-management.html

總結

以上是生活随笔為你收集整理的具有Java 7中自动资源管理功能的GC的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: porn国产 | 国产亚洲精品成人av在线 | 激情小说在线观看 | 在线观看免费毛片 | 色综合天天综合网天天狠天天 | 婷婷丁香六月 | 六月丁香av | 精品无码一区二区三区爱欲 | 色盈盈影院 | 美女啪啪国产 | 久久久国产成人 | 色婷婷国产精品 | 午夜成人免费影院 | 日韩中文在线一区 | 天堂8av| 影音先锋中文字幕第一页 | 91私拍| 黄色a一级视频 | 国产粉嫩呻吟一区二区三区 | 奇米777第四色 | 亚洲色图久久 | 国产乱子一区二区 | 五月天国产视频 | 日本在线观看视频网站 | 欧美激情三区 | 涩涩网站入口 | 亚洲午夜久久久 | 99成人在线视频 | 日本福利视频一区 | 黄色三级在线观看 | 伊人久久免费视频 | 夜夜操狠狠干 | av片免费观看 | 无码国产69精品久久久久同性 | 丰满人妻翻云覆雨呻吟视频 | 国产三级在线观看 | 黄色成人av网站 | 国产专区视频 | 美女黄视频在线观看 | 熟女俱乐部五十路六十路av | 黄色片网站在线播放 | 91久久爽久久爽爽久久片 | 四虎三级| 一本色道无码道dvd在线观看 | 国产伦精品一区二区三区视频免费 | 五月婷婷六月色 | 春日野结衣av | 亚洲精品日本 | 久久精品成人一区二区三区蜜臀 | 天堂а√在线中文在线鲁大师 | 日韩精品一区二区三区网站 | 亚洲国产成人精品久久久 | 法国空姐在线观看免费 | 欧美乱妇15p | 三级黄色av | jzjzjz欧美丰满少妇 | 久久国产劲爆∧v内射 | 午夜精品区 | 欧美一区二区福利 | 天天看片中文字幕 | 亚洲一区免费在线观看 | 亚洲综合另类小说 | 国产欧美视频一区二区 | 国产一区免费在线观看 | 国产一区二区三区四区五区六区 | 学生调教贱奴丨vk | 国产理论在线观看 | 中文字幕一区二区三区精华液 | 超碰狠狠 | 国产精久久久久 | 亚洲av无码国产精品久久不卡 | 欧美黄网站在线观看 | 白嫩日本少妇做爰 | 国产乱国产乱老熟 | 日韩午夜伦 | 亚洲精品456| 一本到在线| 亚洲超碰av | 99热欧美 | 国产毛片一区二区三区 | 久久国内免费视频 | 激情视频在线观看免费 | 欧美天天视频 | 欧美精品亚洲 | 欧美激情黄色 | 欧美精品视 | 免费成人在线观看 | 男女爽爽视频 | 天堂中文在线8 | 成人网免费看 | 三上悠亚在线一区二区 | 中文字幕在线观看免费视频 | 亚欧成人精品一区二区 | 一级欧美一级日韩片 | 一区二区免费在线观看 | 精品久久久久久国产 | 女人一区二区三区 | 99国产精品一区二区 | 四虎中文字幕 |