5

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

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

我非常感谢有关该主题的任何帮助。

谢谢。

4

2 回答 2

9

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

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

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

于 2012-09-05T15:10:02.820 回答
3

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

永久代

是不是就像一加载类

您可以加载类而无需阅读.class

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

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

perm gen等区域存储字节码还是机器级码?

两个都。他们是形影不离的。

于 2012-09-05T15:13:18.700 回答