第3章 深入理解JVM
Java程序运行在JVM之上,JVM的运行状况对于Java程序而言会产生很大的影响,因此,掌握JVM中的关键机制对于编写稳定、高性能的Java程序至关重要。
JVM规范 定义的标准结构如图3.1所示。
(点击查看大图)图3.1 JVM标准结构
以上标准结构是JVM规范中定义的,但各家厂商在实现时不一定会完全遵守。
JVM负责装载class文件并执行,因此,首先要掌握的是JDK如何将Java代码编译为class文件、如何装载class文件及如何执行class,将源码编译为class文件的实现取决于各个JVM实现或各种源码编译器。class文件通常由类加载器(ClassLoader)来完成加载;class的执行在Sun JDK中有解释执行和编译为机器码执行两种方式,其中编译为机器码又分为client和server两种模式。Sun JDK为了提升class的执行效率,对于解释执行和编译为机器码执行都设置了很多的优化策略。
Java程序无须显式分配和回收内存,因此JVM如何进行内存的分配和回收也是要关注的问题。
JVM提供了多线程支持,对于分布式Java应用而言,通常要借助线程来实现高并发,因此JVM中线程资源同步的机制及线程之间交互的机制也是需要掌握的。
各厂家在实现JVM时有所区别,本章以Sun JDK 1.6为例来对JVM中的这三个方面进行介绍。
3.1 Java代码的执行机制
要在JVM中执行Java代码,首先要编译为class文件。下面介绍Sun JDK是如何将Java代码编译为class文件的,这种机制通常称为Java源码编译机制。
点赞 0