官术网_书友最值得收藏!

1.20 異常處理

在沒有try-with-resources的時候,開發者往往需要編寫很多重復而且低效的代碼(需要有大量的catch和finally語句)。一旦開發者忘記釋放資源,就會造成內存泄漏。從Java7開始引入了try-with-resources來解決這些問題,這個語法的出現可以使代碼變得更加簡潔,從而增強代碼的可讀性,也可以更好地管理資源,避免內存泄漏。

下面給出一個在Java7中使用的示例:

從這個例子可以看出,雖然在try語句外已經實例化了一個對象fis,但是為了使用try-with-resources這個特性,需要再使用另外一個額外的引用fis1。因為在JDK7中,try語句塊中不能使用外部聲明的任何資源。如果把try (InputStream fis1=fis) 修改為try(fis),那么就會出現編譯錯誤。

Java 9針對這個缺陷進行了改進。在Java 9中,try塊中可以直接引用外部聲明的資源,而不需要外聲明一個引用。示例代碼如下所示:

顯然,在Java 9對try-with-resources進行優化后,代碼變得更加簡潔。

主站蜘蛛池模板: 吉林省| 乌恰县| 潜山县| 灯塔市| 安福县| 汕尾市| 龙游县| 常宁市| 布拖县| 湟源县| 维西| 左贡县| 林口县| 静宁县| 大关县| 崇左市| 松江区| 嵊泗县| 昌吉市| 郓城县| 西乌| 玛曲县| 剑川县| 日土县| 突泉县| 阳信县| 平阳县| 高清| 珲春市| 桐庐县| 金乡县| 章丘市| 宿州市| 克东县| 乌苏市| 桐城市| 弥渡县| 汉阴县| 双柏县| 驻马店市| 瑞安市|