2011-04-07 79 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空间