Подтвердить что ты не робот

Распределение памяти статического метода

У нас есть две кучи классификации и стек. Когда объект создается, память для объекта хранится в куче. Что делать, если класс имеет статические методы, которые можно вызвать с помощью имени класса. Если объект не создан, то как он будет распределять память, и если он будет там, где он будет выделять память?

4b9b3361

Ответ 1

Это зависит от JVM, но статические поля обычно хранятся в специальном объекте в куче. (Вы можете видеть это в дампе кучи) Когда ClassLoader выгружается, его классы и их статические "объекты" /поля также очищаются.

Единственное, что отличается от статического "объекта", это то, что вы не можете получить ссылку на него. (Но вы можете использовать отражение для доступа к полям)

Ответ 2

Способы (т.е. код) не сохраняются в объекте; все объекты класса будут совместно использовать код для метода. Независимо от языка (Java, С++ или практически любого другого) будет только одна копия кода для любого метода, статического или нет. Как правило, существует определенная область памяти, то есть сегмент CODE на родном языке, например С++, или специальная область кучи в Java, где загружается код.