实战Java虚拟机:JVM故障诊断与性能优化(第2版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4 一切听我的:Java虚拟机规范

虽然Java语言和Java虚拟机有着密切的联系,但两者是完全不同的内容。Java虚拟机是一台执行Java字节码的虚拟计算机,它拥有独立的运行机制,其运行的Java字节码也未必由Java语言编译而成,像Groovy、Scala等语言生成的Java字节码也可以由Java虚拟机执行。立足于Java虚拟机,可以产生各种各样的跨平台语言。除了语言特性各不相同,它们可以共享Java虚拟机带来的跨平台性、优秀的垃圾回收器,以及可靠的即时编译器。

因此,与Java语言不同,Java虚拟机是一个高效的、性能优异的、商用级别的软件运行和开发平台,而这也是本书讨论的重点。

Java虚拟机规范的主要内容大概有以下几个部分:

· 定义了虚拟机的内部结构(将在第2章中详细介绍)。

· 定义了虚拟机执行的字节码类型和功能(将在第11章中详细介绍)。

· 定义了Class文件的结构(将在第9章中详细介绍)。

· 定义了类的装载、连接和初始化(将在第10章中详细介绍)。

以Java 1.7为例,读者可以在http://docs.oracle.com/javase/specs/jvms/se7/html/浏览虚拟机规范全文。这份规范可以说是Java虚拟机的指导性文件,如果要实现自定义的Java虚拟机,则需要参考和熟悉这份规范,同时这份规范对于了解现存的流行Java虚拟机(如Hotspot、IBM J9等),也有十分重要的意义。