2014-11-11 3 views
4

Я знаю, что статический метод и нестатический метод класса хранятся в области метода.
Но я действительно сомневаюсь, что где Java хранит конечные переменные (константные) члены и статические члены переменных объекта.Где хранится Java конечный член и статический член?


Например,

class A{ 
    private final int a = 1; 
    private static int b = 2; 
    private static final int c = 3; 
    //other codes... 
} 

Интересно, где же Java магазин а, б, в в памяти. Область кучи, стека или метода?


====== обновление =====
Эй, Спасибо за ваш help.And пожалуйста, позвольте мне поделиться ссылкой о компонентах: JVM http://www.artima.com/insidejvm/ed2/jvm2.html

+2

у вас есть Google? – SMA

+1

Возможный дубликат http://stackoverflow.com/questions/8387989/where-is-a-static-method-and-a-static-variable-stored-in-java-in-heap-or-in-sta – Rohan

+0

@almasshaikh Да. Но в большинстве материалов у меня есть Google, только скажите мне, где хранить локальную конечную переменную. Например, этот [http://stackoverflow.com/questions/5947352/question-about-local-final- переменная-в-Java]. – aMooly

ответ

0

Внутри Java виртуальная экземпляр машины информация о загруженных типах хранится в логической области памяти, называемой method area. Память для переменных класса (статических), объявленных в классе, берется из области метода.

Все переменные экземпляра будут храниться в heap area, включая конечные элементы.

+1

Спасибо за ваш ответ. А как насчет хранения окончательных членов? – aMooly

+0

Даже это конечная переменная, но все же это переменная экземпляра. Таким образом, он будет храниться в области кучи вместе с данными объекта. –

Смежные вопросы