java类住在哪里?

java类住在哪里?,java,Java,我知道Java对象、实例变量被创建并存在于堆中,而本地变量和对象引用被创建并存在于堆栈中 “阶级”本身呢?它住在哪里 我这样问是因为当你创建静态变量时,你用类名调用它们, e、 g 创建数学类时,它在内存中的位置(堆或堆栈) 堆的永久生成区域 类加载在PermGen空间,即堆所有类加载在PermGen空间Java类位于永久生成堆中。此外,插入的字符串池存储在此处 永久生成堆包含: 类的方法(包括字节码) 类的名称(以指向永久生成中的字符串的对象的形式) 常量池信息(从类文件读取的数据,有关所有

我知道Java对象、实例变量被创建并存在于堆中,而本地变量和对象引用被创建并存在于堆栈中

“阶级”本身呢?它住在哪里

我这样问是因为当你创建静态变量时,你用类名调用它们, e、 g

创建数学类时,它在内存中的位置(堆或堆栈)


堆的永久生成区域

类加载在PermGen空间,即堆

所有类加载在PermGen空间

Java类位于永久生成堆中。此外,插入的字符串池存储在此处

永久生成堆包含:

  • 类的方法(包括字节码)
  • 类的名称(以指向永久生成中的字符串的对象的形式)
  • 常量池信息(从类文件读取的数据,有关所有详细信息,请参阅JVM规范的第4章)
  • 与类关联的对象数组和类型数组(例如,包含方法引用的对象数组)
  • JVM创建的内部对象(例如java/lang/Object或java/lang/exception)
  • 编译器(JIT)用于优化的信息

您可以在此处阅读有关永久生成(存储类、方法等)的更多信息:


但是请注意,当您调用静态方法时,Java实际上是在幕后生成对象的内部实例,因此您实际上是在对象的“幕后”全局实例上调用该方法。

我认为所有类都加载在PermGen空间中。
Math.round()