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

Где статические переменные java хранятся в памяти?

class A{
 static int i = 10;
 static int j = 20;

 static void getname(){

   }

}

Где будут храниться эти переменные в памяти?

4b9b3361

Ответ 1

просто сказано, Статические переменные хранятся в HEAP. Классы и все данные, относящиеся к классам (не данные экземпляра), хранятся в разделе "Постоянное поколение кучи".

Если вам нужен подробный ответ, обратитесь к этому

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

Ответ 2

Во-первых, статические переменные-члены хранятся в области постоянного покоя кучи.

В вашем примере содержатся примитивные переменные типа, они будут сохранены в PermGen.

Если это были переменные типа объекта, например. static Object x = new Object();, тогда ссылка x будет сохранена в PermGen, тогда как сама Object будет помещена в Young Generation of the heap.

Ответ 3

Я думаю, что для большинства реализаций некоторых JVMS это относится к PERM-GEM... но у меня нет доказательств. Правда в том, что... это до JVM, где хранятся эти значения. Это переменная... она может храниться во многих разных моделях в зависимости от реализации JVM.

Если вы видите проблемы с памятью, я бы, вероятно, посмотрел, что назначается, а не как его назначить.

Если вам нужна дополнительная информация, или ваш вопрос более специфичен для реализации; давайте перефразируем ваш вопрос, и я отвечу лучше.