Java体系结构包括四个独立但相关的技术:
名称 | 解释 |
JAVA程序设计语言 | java编程语言(JAVA程序员编写) |
JAVA class文件 | class文件(JAVA编译器编译) |
JAVA 应用编程接口(API) | API (官方提供的class文件) |
JAVA 虚拟机 | 对于直接解释字节码的JAVA虚拟机可以理解为JAVA解释器。但不是所有虚拟机都可以理解为解释器。 |
总体上的流程图:
接下来,具体说一下,JAVA虚拟机的主要任务:
JAVA虚拟机主要任务 | |
装载Class文件 | 它可以从程序和API中装载class文件 (Java API中只有程序执行时需要的那些类才会被装载) |
执行字节码 | 由执行引擎来执行(不同的java虚拟机,执行引擎不同)。 1. 软件实现的虚拟机: 最简单的执行引擎一次性解释字节码 2. 即时编译器(虚拟机):执行更快,但是更加消耗内存,这种情况下,第一次被执行的字节码会被编译成本地机器码,编译出的本地机器码代码会被缓存,当方法被调用的时候,可以重用 3. 自适应优化器(虚拟机):这种方法虚拟机开始的时候解释字节码,但是会监视运行中的程序,并记录下使用最频繁的代码段,程序运行的时候,虚拟机只把活动最频繁的代码编译成本地机器码,其他继续保留字节码-由虚拟机解释,这种执行引擎实际上是内嵌在芯片里的。 |
总体流程图:
未完待续............