JVM原理

来源:互联网 发布:网络直播排行榜 编辑:程序博客网 时间:2024/06/12 23:58
      JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,可以在上面执行java的字节码程序。
 
       java编译器只要面向JVM,生成JVM能理解的代码或字节码文件。Java源文件经编译成字节码程序,通过JVM将每一条指令翻译成不同平台机器码,通过特定平台运行。
 
【JVM执行程序的过程】
   1) 加载.class文件 
   2) 管理并分配内存 
  3) 执行垃圾收集
      JRE(java运行时环境)由JVM构造的java程序的运行环,也是Java程序运行的环境,但是他同时一个操作系统的一个应用程序一个进程,因此他也有他自己的运行的生命周期,也有自己的代码和数据空间。JVM在整个jdk中处于最底层,负责于操作系统的交互,用来屏蔽操作系统环境,提供一个完整的Java运行环境,因此也就虚拟计算机。操作系统装入JVM是通过jdk中Java.exe来完成,通过下面4步来完成JVM环境:1) 创建JVM装载环境和配置 2) 装载JVM.dll 3) 初始化JVM.dll并挂界到JNIENV(JNI调用接口)实例4) 调用JNIEnv实例装载并处理class类。
 
【JVM的生命周期】
   1) JVM实例对应了一个独立运行的java程序它是进程级别 
      a) 启动。启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void 
main(String[] args)函数的class都可以作为JVM实例运行的起点 
      b) 运行。main()作为该程序初始线程的起点,任何其他线程均由该线程启动。JVM内部有两种线程:守护线程和非守护线程,main()属于非守护线程,守护线程通常由JVM自己使用,java程序也可以表明自己创建的线程是守护线程 
      c) 消亡。当程序中的所有非守护线程都终止时,JVM才退出;若安全管理器允许,程序也可以使用Runtime类或者System.exit()来退出
 
  2) JVM执行引擎实例则对应了属于用户运行程序的线程它是线程级别的
原创粉丝点击