目录
1、执行引擎概述
1.1、执行引擎概述
1.2、执行引擎的工作过程
2、Java代码编译和执行过程
2.1、Java代码编译和执行过程
大部分的程序代码转换成物理机的目标代码或虚拟机能执行的指令集之前,都需要经过上图中的各个步骤
2.2、Java代码编译过程
Java代码编译是由源码编译器(前端编译器)来完成,流程图如下
2.3、Java代码执行过程
Java字节码的执行是由JVM执行引擎来完成,流程图如下
问题:什么是解释器(Interpreter),什么是JIT编译器?
问题:为什么说Java是半编译半解释型语言?
3、机器码、指令、汇编语言
3.1、机器码
3.2、指令
3.3、指令集
3.4、汇编语言
3.5、高级语言
3.6、字节码
4、解释器
4.1、解释器的工作机制
4.2、解释器的分类
4.3、现状
5、JIT编译器
5.1、Java代码的执行分类
问题:
5.2、HotSpot JVM的执行方式
5.3、案例
5.4、JIT编译器
5.4.1、概念解释
5.4.2、程序如何选择?:热点代码及探测方式
方法调用计数器:
回边计数器:
5.5、HotSpot VM可以设置程序的执行方式
package com.atguigu.java;
/**
* 测试解释器模式和JIT编译模式
* -Xint : 6520ms
* -Xcomp : 950ms
* -Xmixed : 936ms
* @author
* @create
*/
public class IntCompTest {
public static void main(String[] args) {
long start = System.currentTimeMillis();
testPrimeNumber(1000000);
long end = System.currentTimeMillis();
System.out.println("花费的时间为:" + (end - start));
}
public static void testPrimeNumber(int count){
for (int i = 0; i < count; i++) {
//计算100以内的质数
label:for(int j = 2;j <= 100;j++){
for(int k = 2;k <= Math.sqrt(j);k++){
if(j % k == 0){
continue label;
}
}
//System.out.println(j);
}
}
}
}
5.6、HotSpot VM中JIT分类