Sobes.tech
Junior — Middle
97

A memória mely részein találhatók a statikus változók, metódusok és osztályok?

Cégeket kérdeztek
СБЕРСБЕР

Válasz az MI-től

sobes.tech MI

В Java память для различных элементов программы распределяется следующим образом:

  • Статические переменные (static fields): хранятся в области памяти, называемой "метаспейс" (Metaspace) в современных JVM или "PermGen" в старых версиях. Это область, где размещается метаинформация о классах, включая статические поля.

  • Статические методы: сами методы хранятся в области памяти, где загружаются байт-коды классов (тоже в Metaspace). При вызове статического метода JVM обращается к этой области.

  • Классы: информация о классах (метаданные, байт-код) загружается в Metaspace (начиная с Java 8). Раньше использовался PermGen.

Таким образом, статические переменные и методы связаны с классом и хранятся в области памяти, выделенной для метаданных классов, а не в куче (heap), где размещаются объекты.