2014-09-30 27 views
0

我想了解JVM對象創造邏輯的Java

存儲器管理方案

考慮兩個類A,B

Class A { 

public A() { 
//Do Something 
} 

} 

Class B() extends A{ 

public B(){ 
super(); 
// DO something again 
} 
} 

從主 B B =新B();

據我所知,類加載器將加載A,B並將分別創建2個對象。有沒有其他的對象會被創建?

另外我的問題的第二部分是,當訪問Java Visual VM時,我看到Java NIO包的對象已經創建。有什麼辦法可以阻止JVM創建與我的項目無關的對象嗎?

+1

JVM創建它的內部過程也對象,所以你不能預測實際沒有。由JVM創建的對象。 – Mohit 2014-09-30 07:36:05

+0

我想問題在這裏回答:[http://stackoverflow.com/questions/220133/java-instantiation] – Imran 2014-09-30 07:54:25

回答

1

第一個問題的答案是隻會創建一個對象。基本上,對於每個「新」聲明,都創建了一個對象。所以我認爲你對兩個創建對象的評估是錯誤的。

其次,我不認爲你有任何控制JVM的創建對象(不涉及到你的項目)。

最後,對於更詳細的回答你的問題的第一部分,你可以去看看here