在Heap上创建对象

时间:2016-06-21 17:38:53

标签: java heap

class Person {
    public Person(){}
}
class Employee extends Person{
    public Employee() {}
}
class Manager extends Employee{
    public Manager() {}
}
public class HeapObjectTest {
    public static void main(String[] args) {
        Manager manager = new Manager();}
}

将在Heap for Above代码上创建多少个对象?

3 个答案:

答案 0 :(得分:1)

如果我们只讨论你的代码,那么只有one Manager object,并且将有构造函数链接到Object类。除了这个对象之外,JVM还需要其他对象来运行你的程序,这些对象将是class objects, method objects,它们当前被加载来运行你的程序。

有关任何程序执行顺序的更多详细信息,请参阅以下链接,

https://docs.oracle.com/javase/specs/jls/se7/html/jls-12.html#jls-12.1.1

答案 1 :(得分:0)

调用这行代码:

Manager manager = new Manager();

将创建一个对象,即Manager 的实例。 Manager类的实现借鉴了EmployeePerson类的实现 - 但是,仅仅因为你继承了这些类,并不意味着它们被视为单独的对象。

答案 2 :(得分:0)

您的程序将只为Manager类创建一个Object。 Manager类扩展了Employee和Person的属性/行为,但它只为Manager创建对象而不为其他人创建对象。

根据Object的基本定义 - 它是类的一个实例,而类只是关于如何创建对象的蓝图。希望这会有所帮助。