一、概述
1.1、Java发展中的重大事件
1.2、虚拟机 vs Java虚拟机
1.2.1、虚拟机
1.2.2、Java虚拟机
1.2.3、Java虚拟机的作用
Java虚拟机是二进制字节码的运行环境,负责装载字节码到其内部,解释/编译为对应平台上的机器指令指令。每一条Java指令,Java虚拟机规范中都有详细的定义,如怎么取操作数,怎么处理操作数,处理结果放在哪里。
1.2.4、特点
一次编译,到处运行;
自动内存管理;
自动垃圾回收功能;
1.3、JVM的位置
JVM是运行在操作系统之上的,它与硬件没有直接的交互。
1.4、JVM的架构图(概览图)
HotSpot JVM是目前市面上高性能虚拟机的代表之一;
它采用解释器与即时编译器并存的架构;
在今天,Java程序的运行性能早已脱胎换骨,已经达到了可以和C/C++程序一较高下的地步;
1.5、JVM的架构图(详细图)
1.6、JVM的生命周期
1.6.1、启动
Java虚拟机的启动时通过引导类加载器创建一个初始类来完成的,这个类是由虚拟机的具体实现指定的。
1.6.2、运行
(1)一个运行中的Java虚拟机有着一个清晰的任务,即:执行Java程序;
(2)程序开始执行时它才执行,程序结束时它就停止;
(3)执行一个所谓Java程序的时候,真真正正在执行的是一个叫做Java虚拟机的进程;
1.6.3、退出
当出现以下情况时,虚拟机将会退出:
(1)程序正常执行结束;
(2)程序在运行过程中遇到了异常或者错误而异常终止;
(3)由于操作系统出现错误而导致Java虚拟机进程终止;
(4)线程调用Runtime类或者System类的exit()方法,或者调用Runtime类的halt()方法,并且Java安全管理器也允许这次exit或者halt操作;