2016-06-21 4 views
-5
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();} 
} 

Сколько объектов будет создано в куче для кода выше?Создание объекта на куче

+10

JVM создаст около 10 000 объектов, просто дойдя до метода main(), еще один не будет иметь большого значения. Примечание: загрузка класса в первый раз создает множество объектов. –

+1

Возможный дубликат [Логика создания объектов в Java] (http://stackoverflow.com/questions/26115207/object-creation-logic-in-java) – sauumum

+2

Это вопрос домашней работы, не так ли? Вы должны забыть о куче, это полная красная селедка. Просто подумайте о том, как работает наследование. – biziclop

ответ

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

0

Призывая эту строку кода:

Manager manager = new Manager(); 

Создаст один объект, экземпляр Managerкласс. Реализация класса Manager заимствована из реализации классов Employee и Person, но только потому, что вы наследуете эти классы, это не означает, что они рассматриваются как отдельные объекты.

0

Ваша программа создаст только один класс Object for Manager. Класс Manager расширяет свойства/поведение Employee и Person, но он будет создавать объект только для Менеджера, а не для других.

В соответствии с базовым определением Object - это экземпляр класса и класса - это всего лишь синяя печать о том, как должен быть создан объект. Надеюсь это поможет.

Смежные вопросы