статическое распределение в java - куча, стек и постоянная генерация

В последнее время я много читал о схемах распределения памяти в Java, и было много сомнений, поскольку я читал из разных источников. Я собрал свои концепции, и я бы попросил пройтись по всем пунктам и прокомментировать их. Я узнал, что распределение памяти зависит от JVM, поэтому я должен сказать заранее, что мой вопрос касается Sun.

Классы (загружаемые загрузчиками классов) помещаются в специальную область в куче: Permanent GenerationВся информация, относящаяся к классу, такая как имя класса, массивы объектов, связанные с классом, внутренние объекты, используемые JVM (например, java / lang / Object), и информация об оптимизации поступает в область постоянного создания.Все статические переменные-члены снова сохраняются в области постоянной генерации.Объекты уходят в другую кучу: молодое поколениеВ каждом классе есть только одна копия каждого метода, будь то метод статический или нестатический. Эта копия помещается в область постоянного поколения. Для нестатических методов все параметры и локальные переменные попадают в стек - и всякий раз, когда происходит конкретный вызов этого метода, мы получаем новый стековый фрейм, связанный с ним. Я не уверен, где хранятся локальные переменные статического метода. Они в куче постоянного поколения? Или просто их ссылка хранится в области постоянного поколения, а фактическая копия находится где-то еще (где?)Я также не уверен, где хранится возвращаемый тип метода.Если объектам (в молодом поколении) необходимо использовать статический член (в постоянном поколении), им дается ссылка на статический член &&, им достаточно места в памяти для хранения возвращаемого типа метода и т. Д.

Спасибо, что прошли через это!

Ответы на вопрос(1)

Ваш ответ на вопрос