下面的代碼在實例化StudentRegistrar類時做了什麼?Java初始化問題
public class StudentRegistrar
{
public StudentRegistrar();
{
new RecordManager().Initialize();
}
}
下面的代碼在實例化StudentRegistrar類時做了什麼?Java初始化問題
public class StudentRegistrar
{
public StudentRegistrar();
{
new RecordManager().Initialize();
}
}
它沒有必要立即銷燬RecordManager
。 Initialize()
可能會產生一個新的線程,然後可以保存對RecordManager
的引用。由於新線程是一個垃圾收集根,所以RecordManager
引用可以從該根訪問,因此它不會被清理。
這真的取決於Initialize
做什麼!
它創建的RecordManager
一個實例,調用Initialize()
方法,然後破壞了RecordManager
實例。
編輯:其實它不會編譯由於虛假;
*破壞RecordManager的實例*應替換爲*使得RecordManager的實例可用於垃圾收集* – 2011-01-06 09:23:49