Главная

Java


Массив

Массив, какого бы типа и размерности он ни был, является объектом. Это значит, что он обладает всеми свойствами и методами объекта.

После создания массив инициализируется значением по умолчанию для типа его элементов. Это гарантируется спецификацией языка.

А каково это значение по умолчанию? Объект, созданный вызовом конструктора без параметров? А если такого конструктора нет?
А хранятся в этом массиве не объекты. Там хранятся ссылки на них. Как любая переменная объектного типа является ссылкой на объект, так и любой элемент массива тоже является ссылкой. А для ссылки значение по умолчанию – null!

о копировании. Есть способ быстрее – использовать метод System.arraycopy(...). В этом методе после всех проверок происходит просто копирование области памяти.

Хочу специально коснуться вопроса копирования элементов массива объектов. Поскольку содержит он ссылки, именно они и копируются. Т.е. после копирования новый массив будет указывать на тот же самый набор объектов! И если изменить внутреннее состояние какого-либо из объектов – это будет видно при доступе к нему через любой из массивов.


Полезные ссылки: