【发布时间】:2012-08-30 08:27:46
【问题描述】:
我阅读了 JVM 内存模型,但对以下内容感到困惑:
- JVM 是否将 .class 实例存储在其内存中。如果是,那么在哪个地区。
- 是不是就像类一加载,JVM就生成了 机器级代码,然后开始执行机器代码 指令,然后只在堆上创建对象 方法区域已填充。
- perm gen 等区域存储字节码或机器级别 代码?
- 烫发与方法区
非常感谢有关该主题的任何帮助。
谢谢。
【问题讨论】:
我阅读了 JVM 内存模型,但对以下内容感到困惑:
非常感谢有关该主题的任何帮助。
谢谢。
【问题讨论】:
1) .class 文件将在加载时存储在 permgen 内存区域中。
2) HEAP 上的对象将在程序运行时创建,当您显式创建时,而不是在加载时。 JVM“惰性”编译方法,即它发出小的存根代替方法的已编译机器代码,这将触发每个方法的编译。这意味着永远不会编译未使用的方法。
3) perm gen 存储字节代码(.class 文件将被加载),不确定机器级代码。
【讨论】:
JVM是否将.class实例存储在其内存中。如果是,那么在哪个区域
永久代
是不是一加载类就这样
无需阅读.class即可加载类
,JVM生成机器级代码,然后开始执行机器代码指令
字节码在一段时间后被解释或可能编译为本机机器码。
perm gen etc区存放的是字节码还是机器级码?
两者兼而有之。它们形影不离。
【讨论】: