JDK,JRE,JVM之间的区别和联系

简介: JDK,JRE,JVM之间的区别和联系

JDK,JRE,JVM之间的区别和联系

  • JDK(Java SE Development Kit),Java标准开发包,它提供了编译、运行Java程序所需的各种工具和资源,包括Java编译器、Java运行时环境,以及常用的Java类库等。
  • JRE( Java Runtime Enwironment) , Java运行环境,用于运行Java的字节码文件。JRE中包括了JVM以及JMM工作所需要的类库,普通用户而只需要安装JRE来运行Java程序,而程序开发者必须安装JDK来编译、调试程序。
  • JVM(Java Virtual Machine),Java虚拟机,是JRE的一部分,它是整个java实现跨平台的最核心的部分,负责运行字节码文件。

我们写Java代码,用txt就可以写,但是写出来的Java代码,想要运行,需要先编译成字节码,那就需要编译器,而JDK中就包含了编译器javac,编译之后的字节码,想要运行,就需要一个可以执行字节码的程序,这个程序就是JVM (Java虚拟机),专门用来执行Java字节码的。

如果我们要开发Java程序,那就需要JDK,因为要编译Java源文件。

如果我们只想运行已经编译好的Java字节码文件,也就是*.class文件,那么就只需要JRE。JDK中包含了JRE,JRE中包含了JVM。

另外,JVM在执行Java字节码时,需要把字节码解释为机器指令,而不同操作系统的机器指令是有可能不一样的,所以就导致不同操作系统上的JM是不一样的,所以我们在安装JDK时需要选择操作系统。

另外,JVM是用来执行Java字节码的,所以凡是某个代码编译之后是Java宁节码,那就都能在JWM上运行,比如Apache Groovy, Scala and Kotlin等等。

简而言之,JVM提供了一个运行Java程序的虚拟环境,JRE包含了运行Java程序所需的一切,而JDK不仅包含了JRE,还提供了用于Java开发的工具。在实际开发中,如果你只需要运行Java程序,使用JRE就足够了;如果你需要进行Java开发,那么你需要安装JDK。

相关文章
|
17天前
|
Java
JDK8中JVM堆内存划分
JDK8中JVM堆内存划分
16 0
|
1月前
|
存储 监控 Oracle
简单介绍JDK、JRE、JVM三者区别
1995年Sun公司在SunWorld大会上发布了Java1.0版本,并提出可那个响彻云霄的“一次运行,随处编译”的口号,这句话充分的展示出了Java的跨平台特性,提到跨平台,便衍生出了我们今天需要讨论的话题,JDK、JRE、JVM三者的区别
27 2
|
1月前
|
Java 开发框架 XML
JDK、JRE、Java SE、Java EE和Java ME有什么区别?
JDK、JRE、Java SE、Java EE和Java ME有什么区别?
|
1月前
|
Java 编译器 对象存储
java一分钟之Java入门:认识JDK与JVM
【5月更文挑战第7天】本文介绍了Java编程的基础——JDK和JVM。JDK是包含编译器、运行时环境、类库等的开发工具包,而JVM是Java平台的核心,负责执行字节码并实现跨平台运行。常见问题包括版本不匹配、环境变量配置错误、内存溢出和线程死锁。解决办法包括选择合适JDK版本、正确配置环境变量、调整JVM内存参数和避免线程死锁。通过代码示例展示了JVM内存管理和基本Java程序结构,帮助初学者更好地理解JDK和JVM在Java编程中的作用。
37 0
|
1月前
|
Java
jdk17没有jre处理
jdk17没有jre处理
|
1月前
|
小程序 Java 程序员
【Java探索之旅】我与Java的初相识(二):程序结构与运行关系和JDK,JRE,JVM的关系
【Java探索之旅】我与Java的初相识(二):程序结构与运行关系和JDK,JRE,JVM的关系
35 0
|
26天前
|
Java Linux
JVM堆内存诊断
JVM堆内存诊断
21 0
|
4天前
|
监控 算法 Java
Java虚拟机(JVM)使用多种垃圾回收算法来管理内存,以确保程序运行时不会因为内存不足而崩溃。
【6月更文挑战第20天】Java JVM运用多种GC算法,如标记-清除、复制、标记-压缩、分代收集、增量收集、并行收集和并发标记,以自动化内存管理,防止因内存耗尽导致的程序崩溃。这些算法各有优劣,适应不同的性能和资源需求。垃圾回收旨在避免手动内存管理,简化编程。当遇到内存泄漏,可以借助VisualVM、JConsole或MAT等工具监测内存、生成堆转储,分析引用链并定位泄漏源,从而解决问题。
15 4
|
6天前
|
算法 Java
Java垃圾回收(Garbage Collection,GC)是Java虚拟机(JVM)的一种自动内存管理机制,用于在运行时自动回收不再使用的对象所占的内存空间
【6月更文挑战第18天】Java的GC自动回收内存,包括标记清除(产生碎片)、复制(效率低)、标记整理(兼顾连续性与效率)和分代收集(区分新生代和老年代,用不同算法优化)等策略。现代JVM通常采用分代收集,以平衡性能和内存利用率。
32 3
|
12天前
|
算法 安全 Java
JVM系列4-垃圾收集器与内存分配策略(二)
JVM系列4-垃圾收集器与内存分配策略(二)
20 0
JVM系列4-垃圾收集器与内存分配策略(二)