2011-01-06 90 views
0

下面的代碼在實例化StudentRegistrar類時做了什麼?Java初始化問題

public class StudentRegistrar 
{ 
    public StudentRegistrar(); 
    { 
     new RecordManager().Initialize(); 
    } 
} 

回答

4

它沒有必要立即銷燬RecordManagerInitialize()可能會產生一個新的線程,然後可以保存對RecordManager的引用。由於新線程是一個垃圾收集根,所以RecordManager引用可以從該根訪問,因此它不會被清理。

這真的取決於Initialize做什麼!

1

它創建的RecordManager一個實例,調用Initialize()方法,然後破壞了RecordManager實例。

編輯:其實它不會編譯由於虛假;

+3

*破壞RecordManager的實例*應替換爲*使得RecordManager的實例可用於垃圾收集* – 2011-01-06 09:23:49