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

时间:2012-09-05 15:09:17

标签: java jvm

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

  1. JVM是否将.class实例存储在其内存中。如果是,那么在哪个区域。
  2. 就像加载类一样,JVM生成了 机器级代码,然后开始执行机器代码 指令然后只在堆上创建对象 方法区域已填充。
  3. perm gen etc区域存储字节代码或机器级别 码?
  4. perm gen vs method area
  5. 我真的很感激有关该主题的任何帮助。

    感谢。

2 个答案:

答案 0 :(得分:8)

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

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

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

答案 1 :(得分:2)

  

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

PermGen的

  

一旦加载了类就好了吗

您可以在不阅读.class

的情况下加载课程
  

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

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

  

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

两者。它们是不可分割的。