@ipatina

Как массивы представлены в jvm?

Как массивы представлены в jvm, как она находит элемент по индексу массива, например где-нибудь в середине. Она же, получается, всё равно проходит по всем элементам массива и находит нужный, или какой-то другой механизм? Если такой, то какая разница для jvm - массив это или связный список, почему операция нахождения элемента в середине массива быстрее ?
  • Вопрос задан
  • 352 просмотра
Пригласить эксперта
Ответы на вопрос 1
@nirvimel
Массивы в JVM вполне настоящие, то есть занимают непрерывное пространство в памяти как на C/C++, то есть реализованы НЕ на списках.
Операция доступа к элементу массива имеет сложность O(1), а JIT оптимизирует ее до одной машинной инструкции (на x86), то есть так же как доступ к локальной переменной на стеке или полю класса.
Отдельный элемент массива - не то же самое, что отдельная переменная или поле класса, память, которую он занимает не будет освобождена до тех пор, пока не будет освобожден весь массив.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы