簡體   English   中英

java靜態變量存儲在內存中的位置?

[英]Where java static variables are stored in memory?

class A{
 static int i = 10;
 static int j = 20;

 static void getname(){

   }

}

這些變量將存儲在內存中的哪個位置?

簡單地說, 靜態變量存儲在HEAP中 應用於類(而不是實例數據)的類和所有數據都存儲在堆的“永久生成”部分中。

如果您需要詳細解答,請參閱此處

java中的靜態分配 - 堆,堆棧和永久生成

首先,靜態成員變量存儲在堆的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM