我知道Java對象,實例變量被創建並存在於堆中,而局部變量和對象引用被創建並存在於堆棧中。java class在哪裏?
「班級」本身在哪裏住?
我問這個問題是因爲當你創建靜態變量時,你可以使用類名稱
Math.round()
當創建Math類,其中它住在存儲器(堆或疊層)的堆的
加特
我知道Java對象,實例變量被創建並存在於堆中,而局部變量和對象引用被創建並存在於堆棧中。java class在哪裏?
「班級」本身在哪裏住?
我問這個問題是因爲當你創建靜態變量時,你可以使用類名稱
Math.round()
當創建Math類,其中它住在存儲器(堆或疊層)的堆的
加特
Java類位於Permanent Generation heap
中。此處還存儲了interned字符串池。
常駐代堆包含:
PermGen的(永久代)區域...
類被加載到PermGen空間即堆
所有類都加載在PermGen空間
你可以閱讀更多關於常駐代(其中類,方法等的存儲位置)位置:但是
http://blogs.oracle.com/jonthecollector/entry/presenting_the_permanent_generation
注意,當你調用一個靜態方法的Java做了真正的幕後對象的內部情況,所以你實際上是在該對象的「幕後」全局實例上調用該方法。
我想所有的類都加載到PermGen空間中。 – 2011-04-07 04:57:55