JDK与JRE与JVM:它们之间的区别

JDK与JRE与JVM:它们之间的区别

JDK(Java开发工具包)

JDK是JRE的超集,它包含JRE所拥有的一切以及编译器、调试器等开发工具。

JDK代表Java开发工具包。要在您的系统上安装Java,您需要首先在系统上安装JDK。

JDK包含编写和执行java程序所需的工具。

JDK由Private JRE、JVM、编译器、Java应用程序启动器、Appletviewer等组成。它还提供Java API标准版(SE)。

JDK

JDK的特点

JDK附带了一个完整的Java运行时环境(JRE),这与常规JRE不同。这就是它通常被称为专用运行时的原因,所以我们可以说它包括JRE所具有的所有功能。

它拥有编译器、JVM、JRE、调试器等所有java开发工具。

您需要jdk来编写和运行java程序。

JDK支持多个平台,可以安装在Windows、Mac等操作系统上。

JRE(Java运行时环境)

JRE是运行java虚拟机的环境。JRE包含Java虚拟机(JVM)、类库和其他文件,不包括编译器和调试器等开发工具。

这意味着您可以在JRE中运行代码,但不能在JRE中开发和编译代码。

JRE代表Java Runtime Environment。它为java应用程序提供了运行时环境。

您需要JRE才能运行java程序。如果您不是开发人员,也没有编写java程序,那么您不需要JDK,但仍然需要JRE来运行java程序。

所有JDK都已附带JRE,因此您不需要单独下载和安装它。

JRE包含JVM在运行时使用的一组库和其他文件。

JRE

JRE的功能

JRE包含JVM在运行时需要的一组库和其他工具。

您可以在JRE上轻松地运行任何java程序,但您需要jdk来编写和编译java程序。

JRE包含集成所需的库,如Java数据库连接(JDBC)、Java命名和目录接口(JNDI)、远程方法调用(RMI)等。

JVM(Java虚拟机)

Java是一种高级编程语言。用高级语言编写的程序不能直接在任何机器上运行。首先,它需要被翻译成特定的机器语言。javac编译器做这件事,它获取java程序(包含源代码的.java文件)并将其翻译成机器代码(称为字节码或.class文件)。

Java虚拟机(JVM)是驻留在真实机器(您的计算机)中的虚拟机,JVM的机器语言是字节码。这使得编译器更容易,因为它必须为JVM生成字节代码,而不是为每种类型的机器生成不同的机器代码。JVM执行编译器生成的字节码并产生输出。

JVM的特点

JVM使java代码可以在任何机器上运行,正是JVM使java真正独立于平台。

它还允许在云平台上运行java应用程序。

JDK和JRE都包含JVM。

JVM是一个解释器,因为它逐行执行java代码。

JVM将字节码转换为机器代码。JVM是独立于平台的,因为JVM不依赖于机器的硬件和操作系统。

JVM是如何工作的?

JVM

JVM体系结构

jvm体系结构

相关推荐
SimonKing26 分钟前
Workbuddy太占C盘空间了,写个迁移工具迁走10G的数据
java·后端·程序员
Hvitur1 小时前
Java - Lambda
java·开发语言·python
xiaoye-duck1 小时前
《C++ 项目:手写大模型接入 SDK》DataManager数据管理模块:SQLite持久化存储
开发语言·数据库·c++·sqlite
Evand J1 小时前
【MATLAB例程,PMSM19】永磁同步电机(PMSM)基于多速率无迹卡尔曼滤波(UKF)的转速与转子位置估计。测量缺失、状态预测与恢复性能分析
开发语言·matlab·电机·ekf·卡尔曼·电机滤波
喵了几个咪1 小时前
GoWind Flow 拆解:一个 Go 工作流引擎与它的双模式设计器
开发语言·人工智能·后端·golang
꧁细听勿语情꧂2 小时前
二叉树余题,排序、直接插入排序、希尔排序
c语言·开发语言·数据结构·算法
是main不是漫2 小时前
【C++——类和对象(上)】筑基篇:以封装奠定面向对象之基
c语言·开发语言·c++
apcipot_rain6 小时前
C++转Java日记(06)
java·开发语言
金銀銅鐵10 小时前
带您看懂字节码指令(一):一帧里有什么
java·后端·ai编程
nice_lcj52012 小时前
【从零理解 Spring AI · 14】RAG 的四个环节:加载、切分、向量化、检索
java·spring boot·embedding·向量数据库·rag·spring ai·ai应用开发