华南俳烁实业有限公司

java

當(dāng)前位置:中華考試網(wǎng) >> java >> java教程 >> 文章內(nèi)容

Java9增強(qiáng)的自動(dòng)資源管理

來(lái)源:中華考試網(wǎng)  [2020年11月23日]  【

  在學(xué)習(xí)《Java try catch finally語(yǔ)句》一節(jié)后我們可以發(fā)現(xiàn),當(dāng)程序使用 finally 塊關(guān)閉資源時(shí),程序會(huì)顯得異常臃腫,例如以下代碼。

  public static void main(String[] args) { FileInputStream fis = null; try { fis = new FileInputStream("a.txt"); } catch (FileNotFoundException e) { e.printStackTrace(); } finally { // 關(guān)閉磁盤(pán)文件,回收資源 if (fis != null) { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } }}

  Java 7 以前,上面程序中的 finally 代碼塊是不得不寫(xiě)的“臃腫代碼”,為了解決這種問(wèn)題,Java 7 增加了一個(gè)新特性,該特性提供了另外一種管理資源的方式,這種方式能自動(dòng)關(guān)閉文件,被稱(chēng)為自動(dòng)資源管理(Automatic Resource Management)。該特性是在 try 語(yǔ)句上的擴(kuò)展,主要釋放不再需要的文件或其他資源。

  自動(dòng)資源管理替代了 finally 代碼塊,并優(yōu)化了代碼結(jié)構(gòu)和提高程序可讀性。語(yǔ)法如下:

  填寫(xiě)下面表單即可預(yù)約申請(qǐng)免費(fèi)試聽(tīng)java課程!害怕學(xué)不會(huì)?助教陪讀,隨時(shí)解惑!擔(dān)心就業(yè)?一地學(xué)習(xí),可全國(guó)推薦就業(yè)!

預(yù)約申請(qǐng)免費(fèi)聽(tīng)java課程

  • 地區(qū):
  • 姓名:
  • 手機(jī):

  try (聲明或初始化資源語(yǔ)句) { // 可能會(huì)生成異常語(yǔ)句} catch(Throwable e1){ // 處理異常e1} catch(Throwable e2){ // 處理異常e1} catch(Throwable eN){ // 處理異常eN}

  當(dāng) try 代碼塊結(jié)束時(shí),自動(dòng)釋放資源。不再需要顯式的調(diào)用 close() 方法,該形式也稱(chēng)為“帶資源的 try 語(yǔ)句”。

  注意:

  try 語(yǔ)句中聲明的資源被隱式聲明為 final,資源的作用局限于帶資源的 try 語(yǔ)句。

  可以在一條 try 語(yǔ)句中聲明或初始化多個(gè)資源,每個(gè)資源以;隔開(kāi)即可。

  需要關(guān)閉的資源必 須實(shí)現(xiàn)了 AutoCloseable 或 Closeable 接口。

  Closeable 是 AutoCloseable 的子接口,Closeable 接口里的 close() 方法聲明拋出了 IOException,因此它的實(shí)現(xiàn)類(lèi)在實(shí)現(xiàn) close() 方法時(shí)只能聲明拋出 IOException 或其子類(lèi);AutoCloseable 接口里的 close() 方法聲明拋出了 Exception,因此它的實(shí)現(xiàn)類(lèi)在實(shí)現(xiàn) close() 方法時(shí)可以聲明拋出任何異常。

責(zé)編:fushihao

上一篇:Javatrycatchfinally語(yǔ)句

下一篇: 沒(méi)有了

  • 會(huì)計(jì)考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語(yǔ)考試
  • 學(xué)歷考試
凤凰县| 嵩明县| 凭祥市| 达尔| 延边| 东乡族自治县| 通化县| 三明市| 基隆市| 株洲县| 博乐市| 静乐县| 叶城县| 梁山县| 龙胜| 长海县| 郴州市| 台北县| 青龙| 阳泉市| 桃园县| 扎兰屯市| 抚州市| 泗阳县| 霍山县| 广州市| 农安县| 公安县| 柯坪县| 焉耆| 米林县| 龙里县| 浑源县| 永和县| 玉树县| 仁怀市| 苏尼特左旗| 金昌市| 安国市| 东乌珠穆沁旗| 嘉黎县|