class A{
static int i = 10;
static int j = 20;
static void getname(){
}
}
这些变量会存储在内存中的哪里?
class A{
static int i = 10;
static int j = 20;
static void getname(){
}
}
这些变量会存储在内存中的哪里?
首先,静态成员变量会存储在堆的永久代区域。
你的例子包含原始类型变量,它们将被存储在永久代中。
如果这些是对象类型变量,例如 static Object x = new Object();
,那么引用 x
将被存储在永久代中,而对象本身将被放置在堆的年轻代中。
我认为对于一些JVMS的大多数实现,它特定于PERM-GEM...但我没有证据...事实是...这取决于JVM存储这些值的位置。这是一个变量...它可以以许多不同的方式存储,这取决于JVM的实现。
如果您遇到内存问题,我建议查看分配了什么而不是分配方式。
如果您需要更多信息,或者您的问题更具体于实现,请重新表述您的问题,我将发布更好的答案。