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

溫馨提示×

溫馨提示×

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

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

Closeable和AutoCloseable有哪些區別

發布時間:2021-06-16 14:16:27 來源:億速云 閱讀:202 作者:小新 欄目:編程語言

這篇文章主要介紹了Closeable和AutoCloseable有哪些區別,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

導讀:我們知道,在java中jvm虛擬機會自動去調用gc(垃圾回收器)去回收堆中沒有被引用的對象,至于什么時候回收,是不確定的,同時有些是用到其他資源,jvm也不會進行回收,類似Io流中的FileInputStream使用到了硬盤資源,垃圾回收器是不會去回收的,因此,必須手動關閉掉。我們進行手動的編寫close()方法進行關閉,然而,每次這些寫會造成代碼冗余不優雅,JDK中對于釋放資源有Closeable和AutoCloseable可以使用,以下為詳解。、

Closeable

Closeable源碼

Closeable和AutoCloseable有哪些區別

使用close需要注意

在java.io.包下 InputStream,outputStream, Reader, Writer 等基類都實現了Closeable接口,因為每次的IO操作結束之后都要去釋放資源。

  • 如果在調用此方法之前 stream已經關閉 ,則方法失效;

  • 建議先關閉內部的資源,并標記為已關閉;

  • 優先拋出IO異常;

AutoCloseable

AutoCloseable接口位于java.lang包下,從JDK1.7開始引入。

由于位于java.lang包下,可以針對于所有實現該接口的流,而closable本身也實現了該接口,java的io流間接性的可以自動關閉接口,也就是說從jdk1.7開始,不需要手動去關流。

AutoCloseable源碼

Closeable和AutoCloseable有哪些區別

{try}-with-resources的使用注意

在1.7之前,我們通過try{} finally{} 在finally中釋放資源。

  • 在finally中關閉資源存在以下問題:

  • 自己要手動寫代碼做關閉的邏輯;

  • 有時候還會忘記關閉一些資源;

  • 關閉代碼的邏輯比較冗長,不應該是正常的業務邏輯需要關注的;

Closeable和AutoCloseable有哪些區別

很顯然是很繁瑣的。jdk1.7之后采用{try}-with-resources的解釋

將可能拋出異常的代碼塊放入到try塊中,在try結束的時候,會自動將這些資源關閉(調用close方法)。

{try}-with-resources關鍵點

帶資源的try語句的3個關鍵點:

  • 由帶資源的try語句管理的資源必須是實現了AutoCloseable接口的類的對象。

  • 在try代碼中聲明的資源被隱式聲明為final。

  • 通過使用分號分隔每個聲明可以管理多個資源。

Closeable和AutoCloseable有哪些區別

這樣看起來是不是簡單,舒服很多

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Closeable和AutoCloseable有哪些區別”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

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

jdk
AI

建湖县| 北票市| 台湾省| 思南县| 安龙县| 特克斯县| 洛阳市| 北票市| 石景山区| 张家川| 孟州市| 垫江县| 新绛县| 东乡族自治县| 五指山市| 迁西县| 金门县| 富源县| 称多县| 汕头市| 仁怀市| 天柱县| 新密市| 德江县| 渝北区| 桂林市| 冀州市| 诏安县| 恩平市| 黔江区| 溧水县| 米易县| 绥阳县| 临湘市| 班玛县| 桑植县| 松滋市| 荆州市| 航空| 林芝县| 隆回县|