jvm012-执行引擎

目录

 

1、执行引擎概述

1.1、执行引擎概述

1.2、执行引擎的工作过程

2、Java代码编译和执行过程

2.1、Java代码编译和执行过程

2.2、Java代码编译过程

2.3、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可以设置程序的执行方式

5.6、HotSpot VM中JIT分类

5.7、最后 


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分类

 

5.7、最后 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值