[英]Where java static variables are stored in memory?
class A{
static int i = 10;
static int j = 20;
static void getname(){
}
}
這些變量將存儲在內存中的哪個位置?
首先,靜態成員變量存儲在堆的Permanent Generation區域中。
您的示例包含基本類型變量,它們將存儲在PermGen中。
如果那些是對象類型變量, 例如 static Object x = new Object();
,然后引用x
將存儲在PermGen中,而Object
本身將被放置在堆的Young Generation中。
我認為對於某些JVMS的大多數實現它特別適用於PERM-GEM ...但我沒有證據......事情的真相是......它取決於存儲這些值的JVM。 它是一個變量......它可以根據JVM實現以多種不同的方式存儲。
如果你看到內存問題,我可能會看看被分配的是什么,而不是如何分配。
如果您需要更多信息,或者您的問題更具體實施; 讓我們重新解釋你的問題,我將重新發布一個更好的答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.