jdbc statment 資源釋放問題(高手請進入)

qilong2000發表於2003-08-29
我看了java.sql包中Statement類的說明 其中關於Statement close()方法的說明 有這麼一句話:Note: A Statement object is automatically closed when it is garbage collected.
我覺得這句話的意思是,如果你沒有顯示的調 Statement.close()來釋放資源, 那麼在Statement被垃圾收集的時候也會呼叫Statmetn.close()來釋放資料庫資源。我很奇怪,我覺得垃圾收集statement物件的時候,一般是僅僅釋放statement物件的記憶體,它怎麼會自動的呼叫statement的close()方法去釋放資料庫資源了?因為我覺得對gc來說 statement物件和別的物件應該是無法區分的,它不太可能對一個要收集的物件還要判斷是不是statement物件,如果是的話,先呼叫close(),然後再收集這個物件,這樣的話gc的效率太低了。那麼這句話又是什麼意思呢?

相關文章