После некоторых исследований наиболее распространенная реализация JVM (HotSpot) использовалась для поддерживает предварительную выборку. Но это было удалено, так как от них нет практической пользы. Спасибо @apangin за ссылку на отчет об ошибке.
Как упоминалось в @markspace, объекты переупорядочиваются для облегчения доступа во время сбора — это называется уплотнением и присутствует в сборщике мусора по умолчанию, используемом HotSpot. Вам не нужно беспокоиться о таких базовых деталях, так как виртуальная машина сделает это за вас.
Чуть глубже в уплотнение..
Вы, наверное, слышали об Stop-The-World — это происходит, когда граф объектов находится в несогласованном состоянии. Объекты перемещаются, поэтому поток может получить доступ к объекту, которого больше нет. Некоторые реализации GC считаются безостановочными, например Shenandoah GC, которые используют указатель переадресации, чтобы позволить потоку получить доступ к недавно перемещенному объекту.
Дело в том, что вам не нужно беспокоиться о том, где объект может находиться в памяти или как далеко это местоположение находится от другого объекта. Виртуальная машина была разработана, чтобы позаботиться об этих решениях за вас.
Окончательный ответ
Итак, объекты предварительно выбираются из массива ссылок? Не стоит об этом беспокоиться. Вы используете Java, чтобы не заботиться об этих базовых деталях.
Если вы ДЕЙСТВИТЕЛЬНО заинтересованы в таких деталях (возможно, вы столкнулись с какой-то странной ошибкой), как я упоминал ранее, это зависит от реализации, и вам нужно уточнить, о какой реализации вы говорите.
Хотя, как я уже говорил, это Java; перестаньте беспокоиться о вещах, о которых вам не нужно беспокоиться. Я не могу не подчеркнуть это достаточно.
person
Dioxin
schedule
05.07.2015