哪里java静态变量存储在内存中?
class A{
static int i = 10;
static int j = 20;
static void getname(){
}
}
这些变量在哪里存储在内存中?
简单地说, 静态变量存储在HEAP中 。 类和适用于类的所有数据(不是实例数据)存储在堆的永久生成部分。
如果你需要详细的答案,请参考这个
在Java中的静态分配 - 堆,堆栈和永久生成
首先,静态成员变量存储在堆的永久生成区域中。
你的例子包含原始类型变量,它们将被存储在PermGen中。
如果这些是对象类型变量,例如static Object x = new Object();
,那么参考x
将存储在PermGen中,而Object
本身将放置在堆的年轻一代中。
我认为对于一些JVMS的大多数实现来说,它对PERM-GEM尤其如此......但是我没有证据。事情的真相是......它取决于存储这些值的JVM。 它是一个变量......它可以根据JVM实现以许多不同的方式存储。
如果你看到内存问题,我可能会看看分配的内容,而不是分配的内容。
如果你需要更多的信息,或者你的问题是更具体的实现; 让我们更改您的问题,我会重新发布一个更好的答案。
链接地址: http://www.djcxy.com/p/82857.html