Java .class文件是否存储在JVM内存中

我阅读了JVM内存模型,并对以下内容感到困惑:

  1. JVM是否将.class实例存储在其内存中。 如果是,则在哪个区域。
  2. 就像加载类一样,JVM生成机器级代码然后开始执行机器代码指令,然后只在堆上创建对象并填充方法区域。
  3. perm gen等区域存储字节码或机器级代码?
  4. perm gen vs方法区域

我真的很感激有关该主题的任何帮助。

谢谢。

1) .class文件将在加载时存储在permgen内存区域中。

2)HEAP上的对象将在程序运行时创建,当您明确创建时,而不是加载时。 JVM编译方法’懒惰’,即它发出小的存根来代替方法的编译机器代码,这将触发每个方法的编译。 这意味着永远不会编译未使用的方法。

3)perm gen存储字节代码(将加载.class文件),不确定机器级代码。

JVM是否将.class实例存储在其内存中。如果是,则在哪个区域中

PermGen的

这个类加载后是否就像它一样

您可以在不读取.class情况下加载类

,JVM生成机器级代码,然后开始执行机器代码指令

一段时间后,字节代码被解释或可能编译为本机机器代码。

perm gen等区域存储字节码或机器级代码?

都。 它们是不可分割的。