当前位置: 首页 > news >正文

JDK、JRE及JVM的关系及作用

1、JDK

JDK(Java Development Kit)是java程序的开发工具集,包含了运行环境JRE、开发工具及基础类库等。

注意:

  1. 生产环境,目前使用JDK同时作为开发和运行环境的比较多,主要是为了排查问题方便的同时不用切换运行环境版本,但不建议在流量高峰时使用JDK工具来排查问题,因为很有可能因为使用不当而影响程序正常运行。
  2. 建议JDK选用LTS长期支持版本,截止当前时间,JDK的LTS版本有:8、11、17,建议至少选用8以上版本。

2、JRE

JRE(Java Runtime Environment)是java程序的运行时环境,包含JVM标准实现和核心类库等。

在JDK安装路径或独立JRE安装路径下,有个名为jre或jrex.x.x_x(如:jre1.8.0_261)的目录,里面有两个文件夹bin和lib,可以理解为bin下是与JVM交互的工具,lib中则是JVM工作所需要依赖库,而bin和lib合起来可简单理解为jre环境。

注意:从JDK11开始,Java取消了独立的JRE安装包。

3、JVM

JVM(Java Virtual Machine)是java程序运行的虚拟机,是java实现跨平台的最核心部分,它能够运行以java语言编写的任何软件程序。

因此,JDK、JRE及JVM的关系:JDK包含JRE,JRE包含JVM,所以它们之间的关系从大到小依次为:JDK->JRE->JVM。

注意:在JDK11之前,若我们使用了独立的JRE环境,此时JDK与JRE是同级关系,若我们使用JDK环境,此时JDK包含JRE环境。

4、跨平台

  1. Java程序源代码会被编译成.class字节码文件;
  2. .class字节码文件会在JVM虚拟机上被加载解析;
  3. 虚拟机翻译.class成各平台运行指令,实现一次编译,到处运行;

5、常见面试题

  1. 描述JDK、JRE及JVM之间的关系及各自作用?
  2. 简单描述Java程序一次编译,到处运行的流程? 
http://www.lryc.cn/news/211711.html

相关文章:

  • 组学数据上传(六)|GEO数据库数据上传实操
  • 洛谷,Hydro,Vijos,博客园,GitHub 分别是什么?
  • 自学VUE笔记
  • 系列四十二、Spring的事务传播行为案例演示(二)#REQUIRED
  • oracle rac-归档满处理
  • Python Django 之全局配置 settings 详解
  • 挑选MES系统供应商,需要考虑哪些重要因素?
  • Ai创作系统ChatGPT网站源码+图文搭建教程+支持GPT4.0+支持ai绘画(Midjourney)
  • 基于计算机视觉的坑洼道路检测和识别-MathorCup A(深度学习版本)
  • 【考研数学】概率论与数理统计 —— 第七章 | 参数估计(1,基本概念及点估计法)
  • 获取文本长度
  • python html(文件/url/html字符串)转pdf
  • Spring概述
  • Linux网卡
  • 【Python机器学习】零基础掌握ElasticNet变量选择回归器
  • 【数据结构】模拟实现Vecotr
  • Qt开发: 利用Qt的charts模块绘制曲线、饼图、柱状图、折线图等各种图表
  • Redis:加速你的应用响应时间,提升用户体验
  • 乐鑫 SoC 内存映射入门
  • 蓝凌EIS智慧协同平台saveImg接口存在任意文件上传漏洞
  • 【SEC 学习】美化 Linux 终端
  • 【Unity小技巧】可靠的相机抖动及如何同时处理多个震动(附项目源码)
  • 【51单片机】51单片机概述(学习笔记)
  • make和new的区别
  • vue3获取页面路径
  • 基于STM32闭环步进电机控制系统设计
  • Java中的队列:各种类型及使用场景
  • MappingMongoConverter原生mongo 枚举类ENUM映射使用的是name
  • Java中的锁:类型,比较,升级与降级
  • STM32:串口轮询模式、中断模式、DMA模式和接收不定长数据