2011-04-07 46 views
2

我知道Java對象,實例變量被創建並存在於堆中,而局部變量和對象引用被創建並存在於堆棧中。java class在哪裏?

「班級」本身在哪裏住?

我問這個問題是因爲當你創建靜態變量時,你可以使用類名稱

Math.round() 

當創建Math類,其中它住在存儲器(堆或疊層)的堆的

加特

+0

我想所有的類都加載到PermGen空間中。 – 2011-04-07 04:57:55

回答

2

Java類位於Permanent Generation heap中。此處還存儲了interned字符串池。

常駐代堆包含:

  • 類(包括字節碼)的類的
  • 名稱(在指向一個字符串也是在永久代的對象的形式)的方法
  • 常量池信息(從類文件中讀取數據,有關所有詳細信息,請參閱JVM規範的第4章)。
  • 與類關聯的對象數組和類型數組(例如,包含對方法的引用的對象數組)。
  • 由JVM(Java /郎/對象或Java例如/郎/除外)
  • 由編譯器(JIT們)用於優化的信息創建的內部對象
4

PermGen的(永久代)區域...

1

類被加載到PermGen空間即堆

0

所有類都加載在PermGen空間