Я видел, как люди комментируют непрерывную память Java Heap, а люди говорят обратное. Ну, может кто-нибудь дать мне окончательный ответ и объяснить этот вопрос? Кроме того, существует ли какая-то структура данных в Java Heap, как в Java Stack?
Цитирование из JVM spec : Память для кучи не обязательно должна быть смежной. Таким образом, ваш код не должен делать предположений о непрерывности кучи.
Реальный ответ: вы не знаете и не должны волноваться. Существуют разные JVM, и никто не дает обещаний ни о чем, кроме спецификации.
Это зависит от JVM, но точно не может быть смежным.HotSpot использует кучу поколений, а IBM JDK и JRockit - нет.Я полагаю, что и процессы сборки мусора в IBM и JRockit используют алгоритм очистки / сжатия, который на практике должен приводить к непрерывной куче.