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