JVM学习笔记(9) 执行引擎

一.执行引擎概述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

执行引擎的执行过程

在这里插入图片描述

在这里插入图片描述


二.Java代码编译和执行过程

橙色部分是由javac前端编译而成的
下面的可以参考<<编译原理>>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


三.机器码.指令.汇编语言

在这里插入图片描述

机器码

在这里插入图片描述

指令

在这里插入图片描述

汇编语言

在这里插入图片描述

高级语言

在这里插入图片描述
在这里插入图片描述

字节码

在这里插入图片描述


解释器

在这里插入图片描述

解释器工作机制

在这里插入图片描述

解释器分类

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

现状

在这里插入图片描述


JIT编译器

java代码的执行分类

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

HotSpot JVM 的执行方式

在这里插入图片描述

案例

在这里插入图片描述
在这里插入图片描述

查看JIT编译器

可以在cmd中输入jconsole打开JDK根据查看

public class JITDemo {
    public static void main(String[] args) throws InterruptedException {
        ArrayList<Object> objects = new ArrayList<>();
        for (int i = 0; i < 1000; i++) {
            objects.add("胡琦" + i);
            Thread.sleep(1000);
        }

    }

}

在这里插入图片描述

概念解释

在这里插入图片描述

热点代码及探测方式

在这里插入图片描述
在这里插入图片描述

方法调用计数器

在这里插入图片描述
在这里插入图片描述

热度衰减

在这里插入图片描述

回边计数器

在这里插入图片描述
在这里插入图片描述

HotSpot VM 可以设置程序执行方式

在这里插入图片描述
在这里插入图片描述

分别设置不同的JVM参数切换模式来查看执行所需的时间
在这里插入图片描述

public class JITDemo {
    public static void main(String[] args) {
        long start = System.currentTimeMillis();
        test(1000000);
        long end = System.currentTimeMillis();
        System.out.println("花费的时间为:  "  + (end - start));
    }

    public static void test(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;
                    }
                }
            }
        }
    }
}

Hotspot中 JIT分类

64位的操作系统默认都是service, 时没法进行选择的

在这里插入图片描述
在这里插入图片描述

C1和C2编译器不同的优化策略

在这里插入图片描述

写在最后:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值