| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> JVM系列之JDK、JRE、JVM的区别是什么? -> 正文阅读 |
|
[Java知识库]JVM系列之JDK、JRE、JVM的区别是什么? |
系列博客专栏: 文章目录JVM系列之JDK、JRE、JVM的区别是什么?1、JDK、JRE、JVM的关系引用oracle官网对JDK的概述,里面很明确指出jdk、jre、jvm的关系,jdk是包括jre的,而jvm是jre是一部分
引用官网的图片进行描述: 2、什么是Java virtual machine(JVM)?JVM:java virtual machine,java虚拟机是执行 Java 程序的虚拟机的实现,是一个抽象的计算机器。
JVM运行过程涉及的组件:
引用Oracle官网的图例表示HotSpot JVM的架构设计:如图首先java文件经过javac编译成class类文件,经过类加载器,加载到JVM,再通过执行引擎执行。HotSpot JVM支持高并发和拓展性也很好。 JVM的高性能是由支持并发的垃圾收集器和动态JIT编辑器保证的。HotSpot JVM JIT 编译器在 Java 应用程序运行时做出动态优化决策,并生成针对底层系统架构的高性能本地机器指令 2.1、 类加载器JVM的类加载机制分为五个部分:加载,验证,准备,解析,初始化,如图,详情可以参考我之前的博客 2.2、运行时数据区运行时数据区,是java虚拟机定义的在程序执行期间使用的各种运行时的数据区。这些运行时数据区分为两种,一种是在java虚拟机启动时创建,仅在java虚拟机退出时才被销毁,这种可以理解为线程共享的。另外一种是数据区是针对每个线程的,是在创建线程时创建的,并在线程退出时销毁这个数据区,这种可以理解为线程私有的。
2.3、 执行引擎执行引擎主要有如下3个部分:Interpreter(解释器)、Just-In-Time (JIT) Compiler(即时 (JIT) 编译器)、Garbage Collector(垃圾收集器)
3、什么是Java Runtime Environment(JRE)?Java 运行时环境 (JRE) 是一组用于运行 Java 应用程序的软件组件 JRE 的核心组件包括:
JVM上一节已经做了比较详细的描述,所以这里只介绍运行 Java 程序所需的类和属性文件 3.1、运行 Java 程序所需的类
3.2、 属性文件属性文件位于/jre/lib/内的不同文件夹中
4、什么是Java Development Kit (JDK)?Java Development Kit (JDK) 提供用于开发、编译、调试和执行 Java 程序的环境和工具。
5、附录:参考资料 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/18 14:31:53- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |