1、需要自己close的東西,一般都是用了虛擬機(jī)之外的資源,例如端口,顯存,文件等,虛擬機(jī)無法通過垃圾回收釋放這些資源,只能你顯式調(diào)用close方法來釋放。
許多情況下,如果在一些比較頻繁的操作中,不對流進(jìn)行關(guān)閉,很容易出現(xiàn)輸入輸出流經(jīng)超越了JVM的邊界,所以有時(shí)可能無法回收資源。
所以流操作的時(shí)候凡是跨出虛擬機(jī)邊界的資源都要求程序員自己關(guān)閉,不要指望垃圾回收。
你讀一個(gè)文件,忘記關(guān)閉了流,你在操作系統(tǒng)里對這個(gè)文件的寫,刪除等操作就會(huì)報(bào)錯(cuò),告訴你這個(gè)文件被某個(gè)進(jìn)程占用。
轉(zhuǎn)自:https://blog.csdn.net/injurooioo/article/details/73551444