2014-09-30 72 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