Где статические переменные java хранятся в памяти?
class A{
static int i = 10;
static int j = 20;
static void getname(){
}
}
Где будут храниться эти переменные в памяти?
Ответ 1
просто сказано, Статические переменные хранятся в HEAP. Классы и все данные, относящиеся к классам (не данные экземпляра), хранятся в разделе "Постоянное поколение кучи".
Если вам нужен подробный ответ, обратитесь к этому
Во-первых, статические переменные-члены хранятся в области постоянного покоя кучи.
В вашем примере содержатся примитивные переменные типа, они будут сохранены в PermGen.
Если это были переменные типа объекта, например. static Object x = new Object();, тогда ссылка x будет сохранена в PermGen, тогда как сама Object будет помещена в Young Generation of the heap.
Ответ 3
Я думаю, что для большинства реализаций некоторых JVMS это относится к PERM-GEM... но у меня нет доказательств. Правда в том, что... это до JVM, где хранятся эти значения. Это переменная... она может храниться во многих разных моделях в зависимости от реализации JVM.
Если вы видите проблемы с памятью, я бы, вероятно, посмотрел, что назначается, а не как его назначить.
Если вам нужна дополнительная информация, или ваш вопрос более специфичен для реализации; давайте перефразируем ваш вопрос, и я отвечу лучше.