java什么時(shí)候該寫close?
雖然java有自動(dòng)內(nèi)存回收機(jī)制,但是如果是數(shù)據(jù)庫(kù)連接、網(wǎng)絡(luò)連接、文件操作等,不close是不會(huì)被回收的,屬于不正確的代碼。
也就是說,有close方法,必須得自己調(diào)用一下才行。
垃圾回收機(jī)制僅在Java虛擬機(jī)所控制的范圍內(nèi)釋放資源。
對(duì)于類似于數(shù)據(jù)庫(kù)連接、socket以及文件操作等,
如果有close方法,在你完成任務(wù)后執(zhí)行它
并且最好在finally塊內(nèi)做close,因?yàn)榧词拱l(fā)生了例外,這些代碼也能被調(diào)用。
對(duì)于使用完了的對(duì)象來講,Java不推薦使用類似于C++的析構(gòu)函數(shù)來釋放內(nèi)存(C++中new完后得delete,Java中new完,使用后,將其置
成null比較好),因?yàn)镚C會(huì)調(diào)節(jié)最適當(dāng)?shù)臅r(shí)間來釋放內(nèi)存,在程序中濫用delete會(huì)降低Java程序的性能(但應(yīng)該不會(huì)引發(fā)額外的錯(cuò)誤)。