我正在尝试了解JVM的内存管理方案
考虑两个类A,B
Class A {
public A() {
//Do Something
}
}
Class B() extends A{
public B(){
super();
// DO something again
}
}
来自主要 B b = new B();
据我所知,类加载器将加载A,B并将分别创建2个对象。是否有任何其他对象可以创建?
我的问题的第二部分也是,在访问Java Visual VM时,我看到了Java NIO包的对象已经创建。有什么办法可以阻止JVM创建与我的项目无关的对象吗?
答案 0 :(得分:1)
第一个问题的答案是,只会创建一个对象。基本上,对于每个“新”语句,都会创建一个对象。所以我认为你对两个被创建对象的评估是错误的。
其次,我认为对于创建的对象(与您的项目无关),您对JVM没有任何控制权。
最后,如果您对问题的第一部分有更详细的解答,可以查看here