JVM的生命周期

来源:互联网 发布:python 网易公开课 编辑:程序博客网 时间:2024/06/06 20:26

生命周期

  1. JVM实例创建

    当启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例运行的起点。 
  2. JVM实例运行

     main()作为该程序初始线程的起点,任何其他线程均由该线程启动。
  3. JVM实例销毁

    当程序中的所有非守护线程都终止时,JVM才退出;若安全管理器允许,程序也可以使用java.lang.Runtime类或者java.lang.System.exit()来退出。

JVM实例和JVM执行引擎实例

  1. JVM实例对应了一个独立运行的java程序——进程级别。一个运行时的Java虚拟机(JVM)负责运行一个Java程序。当启动一个Java程序时,一个虚拟机实例诞生;当程序关闭退出,这个虚拟机实例也就随之消亡。如果在同一台计算机上同时运行多个Java程序,将得到多个Java虚拟机实例,每个Java程序都运行于它自己的Java虚拟机实例中。

  2. JVM执行引擎实例则对应了属于运行程序的线程——线程级别

JVM启动过程

  1. 加载配置

    查找JVM.cfg文件:首先确定JRE路径;根据JVM.cfg文件路径=JRE路径+\lib+\ARCH(CPU构架)+\JVM.cfg 确定路径。
  2. 装载JVM.dll

    调用操作系统函数,由操作系统装入JVM.dll文件(JVM的实现)
  3. 初始化JVM,获得JNI接口

    JNI接口即Java本地接口,用于加载class文件及与操作系统交互;
  4. 运行Java程序

    加载main方法所在的类,执行main方法;
原创粉丝点击