哪里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

上一篇: Where java static variables are stored in memory?

下一篇: What is the actual memory place for static variables?