Различные виды передачи объектов в массивы - PullRequest
0 голосов
/ 13 октября 2019

Есть ли разница между созданием объекта и последующей передачей его в ArrayList или непосредственным созданием объекта в методе ArrayList.add? В случае использования памяти и производительности? Пример:

ArrayList<ClassX> arrayList = new ArrayList();
//Type 1:
ClassX object = new ClassX();
arrayList.add(object);
//Type 2:
arrayList.add(new ClassX());

Ответы [ 2 ]

0 голосов
/ 13 октября 2019

Логически? Нет. Оба служат одной и той же цели.

Пространство? Да. В type1: ссылка будет создана в стеке, следовательно, выделение дополнительной памяти. И теперь к объекту можно получить доступ либо по ссылочной переменной, либо по индексу списка массивов.

0 голосов
/ 13 октября 2019

По существу нет различий между двумя строками, но вторая сокращает ненужные создания переменных. В первом вы можете изменить первый объект, так как у вас есть ссылка на него.

...