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

JVM,JRE和JDK的区别

JVM,JRE和JDK的区别

    • JVM(Java Virtual Machine,Java虚拟机)
    • JRE
      • JRE目录结构
    • JDK

JVM(Java Virtual Machine,Java虚拟机)

Java程序的跨平台特性主要是指字节码文件可以在任何具有Java虚拟机的计算机或者电子设备上运行,Java虚拟机中的Java解释器负责将字节码文件解释成为特定的机器码进行运行。因此在运行时,Java源程序需要通过编译器编译成为.class文件。众所周知java.exe是java class文件的执行程序,但实际上java.exe程序只是一个执行的外壳,它会装载jvm.dll(windows下,下皆以windows平台为例,linux下和solaris下其实类似,为:libjvm.so),这个动态连接库才是java虚拟机的实际操作处理所在。

JVM是JRE的一部分。它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java语言最重要的特点就是跨平台运行使用JVM就是为了支持与操作系统无关,实现跨平台。 所以,JAVA虚拟机JVM是属于JRE的,而现在我们安装JDK时也附带安装了JRE(当然也可以单独安装JRE)。

JRE

Java Runtime Environment,Java运行环境。 包含JVM标准实现和java核心类库,完整的Java运行环境.

JRE目录结构

在这里插入图片描述
JRE目录结构

  1. bin:Java平台工具所使用的的.exe可执行文件和.dll可执行文件。
  2. lib:代码库、树形设置以及JRE使用的源文件,如——
    rt.jar:Bootstrap类(构成Java平台核心API的运行时类);
    charsets.jar:字符转换类;
    jfxrt.jar:JavaFX的运行时库。
  3. lib\applet:包含支持类的小程序jar文件可以放置在lib/applet/目录中。这样,通过允许小程序类从Applet类装载器的本地文件系统预装,提供同样的保护,就好像他们已经被下载超过净减少启动时间大的小程序。
  4. lib\ext:Java平台的扩展程序(插件等)的默认安装目录。如——
    localedata.jar-用于现场数据 java.text和java.util。
  5. lib\fonts:平台使用的字体文件。
  6. lib\security:包含用于安全管理的文件。这些措施包括安全策略(java.policy)和安全性(java.security)文件。

JDK

Java Development Kit,Java开发环境。 包含了JRE、Java核心类库、开发工具包(编译器+调试工具)
在这里插入图片描述

http://www.lryc.cn/news/145097.html

相关文章:

  • 合宙Air724UG LuatOS-Air LVGL API控件--日历 (Calendar)
  • [python]问题:pandas处理excel里的多个sheet
  • [MySQL] MySQL基础操作汇总
  • C语言每日一题 ---- 打印从1到最大的n位数(Day 1)
  • 2023-08-23 LeetCode每日一题(统计点对的数目)
  • LLMs之Code:SQLCoder的简介、安装、使用方法之详细攻略
  • 数学建模(四)整数规划—匈牙利算法
  • openGauss学习笔记-47 openGauss 高级数据管理-权限
  • 开始MySQL之路——MySQL 事务(详解分析)
  • 注解和class对象和mysql
  • 【桌面小屏幕项目】ESP32开发环境搭建
  • CSS 滚动容器与固定 Tabbar 自适应的几种方式
  • IP 地址追踪工具
  • 最新企业网盘产品推荐榜发布
  • 实用的面试经验分享:程序员们谈论他们的面试历程
  • 6.oracle中listagg函数使用
  • 习题练习 C语言(暑期)
  • C++中虚函数表的概念
  • 代码随想录算法训练营第四十八天 | 198.打家劫舍,213.打家劫舍II,337.打家劫舍III
  • uniapp项目实战系列(1):导入数据库,启动后端服务,开启代码托管
  • 在互联网+的背景下,企业如何创新客户服务?
  • 国内的化妆品核辐射检测
  • 春秋云镜:CVE-2019-9042(Sitemagic CMS v4.4 任意文件上传漏洞)
  • 20230828工作日志:
  • flink on yarn 部署
  • postgresql基于postgis常用空间函数
  • 详细讲解移植u-boot.2022.10版本移植到开发板基本方法
  • Vue.js2+Cesium1.103.0 十一、Three.js 炸裂效果
  • Nodejs快速搭建简单的HTTP服务器,并发布公网远程访问
  • 爬虫入门01