Неясный вопрос о количестве экземпляров в программе - PullRequest
0 голосов
/ 25 октября 2018

У меня есть вопрос, который я считаю довольно расплывчатым.

Сколько объектов (экземпляров) класса A создается следующим методом:

void create() {
    A a;
    A b;
    A[] s;
    a = new A();
    b = a;
    s = new A[10];
}

class A { }

Я не уверен, как считать массив.Мы можем легко увидеть, что объекты a и b одинаковы, но считаем ли мы сам массив массивом или мы считаем, что он имеет 10 объектов, которые являются нулевыми?

Благодарю вас взаранее!

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Я выполнил приведенный выше код через профилировщик Eclipse и обнаружил, что был создан только один экземпляр a = new A(), на который также ссылается b.Следовательно, был создан только один экземпляр.Массив типа A не был выделен как нулевой, пока я не назначил объект первому индексу массива.Надеюсь, это поможет.

0 голосов
/ 25 октября 2018

s = new A[10] - это объект A [], это не объект класса A.

Следовательно, вы не учитываете 10 нулевых ссылок массива.

толькоa = new A() создано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...