深入了解 JVM:从基础到 Oracle WebLogic Server 应用
1. 内存模型与执行环境
内存模型定义了系统中多线程的可能场景和规则,它决定了程序的执行轨迹是否被 JVM 允许。Java 规范并不强制 JVM 实现遵循特定的程序执行规则,这为 JVM 实现者提供了编译器优化和执行顺序重组的灵活性。不过,内存模型要求所有实现产生的结果能被程序员预测,它定义了线程的可能规则和多线程程序的预期行为,以便程序员进行程序设计。避免线程中的数据竞争和死锁条件的责任仍在于实现者和程序员。
Java 的执行环境即 Java 运行时环境(JRE)。要在 JVM 上运行的程序必须编译成标准化的可移植二进制格式,通常为 .class 文件。一个程序可能由不同文件中的多个类组成,为便于大型程序的分发,多个类文件可打包成 .jar 文件(Java 归档)。
Java 可执行文件提供了执行 Java 代码的标准方式。JVM 运行时执行 .class 或 .jar 文件,通过解释或使用即时编译器(JIT)来模拟 JVM 指令集,如今大多数 JVM 使用 JIT 编译以获得更好的性能。此外,还有提前编译器(AOT),可让开发者将类文件预编译成特定平台的本地代码。
Java 虚拟机采用基于栈的架构,对类似 Java 的类和方法提供底层支持,拥有高度复杂的内存模型和基于能力的架构。
2. JVM 的工作原理
JVM 负责加载和执行代码,它使用类加载器将 Java 类加载到 Java 运行时环境中。类加载器的设计使得 JVM 在启动时无需了解运行时将加载的类的任何信息。几乎所有基于 Java 的容器,如 EJB 或 Servlet 容器,
超级会员免费看
订阅专栏 解锁全文
83

被折叠的 条评论
为什么被折叠?



