• JVM系列:JDK、JRE、JVM 的关系


    接下来会开启学习模式,大家一起跟着我过各大技术栈的知识点吧! 本篇文章过一遍JVM名词基础概念

    JDK、JRE、JVM 的关系

    1、JDK是 Java SE 开发工具包。JDK 是提供给 Java 开发人员使用的, 其中包含了 java 的开发工具,也包括了 JRE。所以安装了 JDK,就不用在单独安装 JRE 了。其中的开发工具包括编译工具(javac.exe) 打包工具(jar.exe)等。

    2、JRE是 Java SE 运行 时环境。是 JDK 的子集,JRE 提供了库、Java 虚拟机(JVM)和其他组件,用于运行 Java 编程语言、小程序、应用程序。

    JVM是 Java 虚拟机。JVM 可以理解为是一个虚拟出来的计算 机,具备着计算机的基本运算方式,它主要负责把 Java 程序生成的字节码文件, 解释成具体系统平台上的机器指令,让其在各个平台运行。

    我们运行程序的 JVM 已经安装到 JDK中。

    JDK 目录结构和作用

    ● bin :一堆 EXE 可执行文件,java.exejavac.exejavadoc.exe,以及密钥管理工具等

    ● db :内置了 Derby 数据库,体积小,免安装

    ● include: Java JVM 交互的头文件,例如我们JVMTI写的 C++ 工程时,就需要把这个 include 包引入进去jvmti.h

    ● jre:Java 运行环境,包含了运行时需要的可执行文件,以及运行时需要依赖的 Java 类库和动态链接库.so .dll .dylib

    ● lib:Java 类库,例如 dt.jartools.jar

    JVM 结构和执行器

    ● Class Loader

    类装载器是用于加载类文件的一个子系统,其主要功能有三个: loading、linking、initialization

    ● JVM Memory Areas

    方法区、堆区、栈区、程序计数器。

    ● Interpreter 解释器

    通过查找预定义的 JVM 指令到机器指令映射,JVM 解释器。可以将每个字节码指令转换为相应的本地指令。它直接执行字节码,不执行任何优化。

    ● JIT Compiler 即时编译器

    为了提高效率,JIT Compiler 在运行时与 JVM 交互,并适当将字节码序列编译为本地机器代码。典型地,JIT Compiler 执行一段代码,不是每次一条语句。优化这块代码,并将其翻译为优化的机器代码。JIT Compiler 是默认开启

    参考资料:小傅哥《Java面经手册》

    本文由 mdnice 多平台发布

  • 相关阅读:
    电机模型预测控制算法
    【推荐系统】Embedding + MLP tensorflow特征处理 + 模型搭建实战 笔记
    通义灵码-IDEA的使用教程
    【Python】Pandas处理数据太慢,来试试Polars吧!
    MODBUS协议下,能否实现MCGS触摸屏与FX5U之间无线通讯?
    1011 循环神经网络 RNN
    元宇宙发展大事纪-里程碑事件
    亚马逊的卫星发射升空,它和“星链”在讲什么故事?
    编写OpenCL程序的基本步骤
    java版直播商城平台规划及常见的营销模式有哪些?电商源码/小程序/三级分销
  • 原文地址:https://blog.csdn.net/ChrisLu777/article/details/125550199