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