Само название ArrayList происходит из двух слов: Array + List. Array — это массив, а List — список. Внутри каждого объекта типа ArrayList хранится обычный массив элементов. Когда вы считываете элементы из ArrayList, он считывает их со своего внутреннего массива. Когда записываете — записывает их во внутренний массив. У класса ArrayList отсутствуют все недостатки, которые есть у массивов. Он умеет: Создание объекта ArrayList ArrayList<Тип> имя = new ArrayList<Тип>(); Методы: Как устроен ArrayList Устройство ArrayList простое и гениальное по своей сути...
Продолжим начатую тему адресации. Чтобы быть в курсе обсуждения, обязательно прочитайте первую часть: Краткий пересказ. Запись для массива вида array[3] = 5 Состоит из следующих частей: array это символическое название для адреса памяти, допустим 2048, далее 3 это тоже адрес памяти, но относительный (относительно адреса array), а квадратные скобки это содержимое адреса. Итого получаем доступ к содержимому адреса 2051 и пишем туда число 5: [2048 + 3] = 5 В том, что array это именно адрес, можно убедиться, попытавшись написать array = 5 Вы сразу получите ошибку...