1. 程式人生 > >jdk1.7新特性try(){}

jdk1.7新特性try(){}

最近在某群中看到有位朋友發了段程式碼

public void xxx(){

        try(InputStream fis = new FileInputStream(source)){
      byte[] buf = new byte[1024];
      // 省略若干程式碼........
}
       catch(BussineExpection e)
throw e;
}
疑問一:InputStream為何不在finally中關閉

疑問二:try()中的程式碼什麼意思

懷著這樣的疑問,我去調查了一些資料

知道了這是jdk7的新特性,名稱 try-with-resources 語句,

稱為 ARM 塊(Automatic Resource Management) ,自動資源管理。

新的語句支援包括流以及任何可關閉的資源。

資料流會在 try 執行完畢後自動被關閉,這樣,程式碼是不是優雅多了

前提是,這些可關閉的資源必須實現 java.lang.AutoCloseable 介面。

好了,這回我們在編寫關於檔案資源類的util工具類的時候

可以寫出非常優雅的程式碼的同時,也提升了我們程式設計師的逼格。