С первого дня обучения Java мне рассказали разные веб-сайты и многие учителя, что массивы представляют собой последовательные ячейки памяти, которые могут хранить указанное количество данных одного и того же типа.
Поскольку массив является объектом, а ссылки на объекты хранятся в стеке, а фактические объекты живут в куче, ссылки на объекты указывают на фактические объекты.
Но когда я сталкивался с примерами создания массивов в памяти, они всегда показывают что-то вроде этого:
(в котором ссылка на объект массива хранится в стеке и эта ссылка указывает на фактический объект в куче, где также имеются явные индексы, указывающие на определенные ячейки памяти)
Но недавно я наткнулся на онлайн-заметки Java, в которых они заявили, что явные индексы массивов не указаны в памяти. Компилятор просто знает, куда идти, глядя на номер индекса предоставленного массива во время выполнения.
Точно так же:
После прочтения заметок я также искал в Google по этому вопросу, но содержание по этому вопросу было либо довольно двусмысленным, либо несуществующим.
Мне нужно больше разъяснений по этому вопросу. Являются ли индексы объектов массива явно отображаемыми в памяти или нет? Если нет, то как Java управляет командами для перехода в определенное место в массиве во время выполнения?