5.1Java虚拟机是什么
- 抽象规范
- 一个具体的实现
- 一个运行中的虚拟机实例
5.2Java虚拟机的生命周期
- 当启动一个Java程序时,一个虚拟机实例就诞生了。当程序关闭退出时,这个虚拟机实例也就随之消亡。
- Java虚拟机实例通过调用某个初始类的main方法来运行一个Java程序。这个main方法必须是公有的、静态的、返回值是void,并且接受一个字符串数组作为参数。
- Java程序初始类中的main方法,将作为该程序初始线程的起点,任何其他线程都是由初始线程启动的。在Java虚拟机内部有两种线程:守护线程与非守护线程。只要还有任何非守护线程在运行,那么这个Java程序也在继续运行。
5.3 Java虚拟机的体系结构
- 在Java虚拟机规范中,一个虚拟机实例的行为是分别按照子系统、内存区、数据类型以及指令这几个术语来描述的。它们一起展示了抽象的虚拟机的内部抽象体系结构。规范本身通过定义这些抽象的组成部分以及它们之间的交互,来定义任何Java虚拟机实现都必须遵守的行为。
- 每个Java虚拟机都有一个类装载子系统