一、JVM启动
java虚拟机的启动时通过引导类加载器(bootstrap class loader)创建的一个初始类来完成的,这个初始类由具体的虚拟机实现指定。
虚拟机的启动是按需启动,只有在程序用到的时候才会启动,一个虚拟机对应的一个进程,可以通过jps查询相应的进程。
二、JVM的执行
- 一个运行中Java虚拟机有着一个清晰的任务:执行java程序。
- 程序开始执行时它才会运行,程序结束时他就停止(生命周期是与程序同步的)。
- 执行一个所谓的Java程序的时候,真正执行的是一个叫做java虚拟机的进程。
三、JVM的退出
- 程序正常退出
- 程序在执行过程中遇到异常或错误而异常退出
- 由于操作系统出现错误而导致java虚拟机进程终止
- 某线程调用Runtime类或System类的exit方法,或Runtime类的halt方法,并且java安全管理器也允许支持exit或者halt操作。
- 除此之外,JNI(Java Native Interface)规范描述了JNI Invocation API来加载或卸载java虚拟机时,java虚拟机退出的情况。