1. 程式人生 > >finalize()方法什麼時候被呼叫?解構函式(finalization)的目的是什麼?

finalize()方法什麼時候被呼叫?解構函式(finalization)的目的是什麼?

1、finalize()用在當垃圾回收器,因記憶體緊張,而去回收某些物件時,這時候會去呼叫其finalize()方法;而如果記憶體不緊張,就不會去回收物件,那finalize()就不會被呼叫;

     但是呢,考慮到JNI(java native interface),有時候finalize()就可以去回收這部分的記憶體;

2、Java堆的結構是什麼樣子的?什麼是堆中的永久代(Perm Gen space)?

      堆裡的內容有:物件和陣列等

      堆建立的時期:jvm啟動的時候

      堆中由存活和死亡的物件組成的,其區別主要是在    存活的可以被訪問,死亡的雖然還在堆中,但已經不可訪問;