JRE、JDK、JVM及JIT之间有什么不同?_java基础知识总结

createh51个月前 (02-01)技术教程18

当涉及Java编程和执行时,以下术语具有不同的含义:

1.JRE (Java Runtime Environment)

  JRE是Java运行时环境的缩写。它是一个包含用于在计算机上运行Java应用程序所需的组件集合。JRE包括了以下几个主要部分:

  ·Java虚拟机(JVM):用于执行Java字节码的虚拟机,将字节码翻译成本地机器代码并执行。

  ·Java核心类库:一组预定义的类和方法,用于处理常见任务,如输入输出、数据结构、网络通信等。

  ·支持文件:包含必要的文件,例如字体、属性文件等,以支持Java应用程序的正常运行。

2.JDK (Java Development Kit)

  JDK是Java开发工具包的缩写。它是用于开发Java应用程序的软件包,包含了编译器、调试器、库以及其他开发工具。JDK包括了JRE,因为开发人员在开发过程中需要能够编译、调试和测试他们的代码。JDK的主要组成部分包括:

  ·编译器:将Java源代码编译为字节码的工具。

  ·调试器:用于调试代码,找出错误和问题。

  ·核心类库:与JRE中的类库相同,用于在开发过程中处理各种任务。

  ·开发工具:包括各种辅助开发的工具,如集成开发环境 (IDE)、构建工具等。

3.JVM (Java Virtual Machine)

  JVM是Java 虚拟机的缩写,它是一个运行Java字节码的虚拟计算机。JVM是JRE的一部分,负责在计算机上实际执行Java程序。它有以下主要功能:

  ·类加载:将编译后的字节码加载到内存中。

  ·字节码执行:将字节码解释或编译成本地机器代码,并在计算机上执行。

  ·内存管理:自动管理内存分配和垃圾回收。

  ·安全性管理:控制 Java 应用程序的访问权限和安全性。

4.JIT (Just-In-Time Compiler)

  JIT编译器是JVM的一部分,它是一种特殊的编译器,用于将Java字节码动态地编译成本地机器代码,以提高程序的执行性能。JIT编译器在运行时根据程序的执行情况进行优化,将频繁执行的代码编译为本地机器代码,从而加速程序的执行速度。JIT编译器通过消除不必要的运行时解释和优化代码执行路径,提高了Java程序的性能。

  文章的最后再简单总结上述术语之间的关系:JRE是在计算机上运行Java程序所需的环境,JDK是用于开发 Java程序的工具集,JVM是实际执行Java字节码的虚拟机,而JIT是JVM中的一部分,用于将字节码编译成本地机器代码以提高执行性能。

相关文章

阿里P9级架构师马士兵花四小时让你搞懂JVM底层原理(附JVMpdf)

JVM面试难题当面试官向你提问JVM的实战问题时,你是否感觉到无所适从?想解决生产环境中的GC问题,你是否感觉到狗咬刺猬,无处下嘴?面对JVM的海量参数,你是否感觉到迷茫无助?看过很多的JVM文章,但...

Java的优势:跨平台只是一部分(java优劣势)

以下讨论只针对PC端和移动端。Java最大的优势真的在于跨平台吗?以前是,但现在已经不是了。有跨平台需求的仅仅是客户端应用,而不是服务端。例如桌面应用,你的客户可能是Windows用户,也可能是Lin...

JVM之Java编译到执行(1)——引(运行java编译器的命令)

Java语言特点一次编写,到处运行。也就是跨平台。 因为这个跨平台的实现原理,而导致Java的编译流程,与以往的C++之类语言有不同。各个操作系统的底层实现,资源的协调,和硬件操作各有各的不同。就意味...

JAVA面试题每日一练:描述一下JVM加载class文件的原理机制?

Java是一门高度平台独立的编程语言,但在这个跨平台的特性背后,Java虚拟机(JVM)却承担了一个至关重要的任务:类加载。类加载不仅是Java程序执行的前提,它还是保证Java平台安全性和可扩展性的...

读完这份JVM高级笔记,彻底玩转Java虚拟机,面试再也不用“虚”

提到Java虚拟机(JVM),可能大部分人的第一印象是“难”,但当让我们真正走入“JVM世界”的时候,会发现其实问题并不像我们想象中的那么复杂。唯一真正令我们恐惧的,其实是恐惧本身。JVM 一直都是面...

终于,Spring 对 JVM 动手了(spring jar)

Spring 在今年 3 月份推出了 Spring Native Beta 版本,我本来还想着等正式发布了再研究下,不用等了,现在我们就来尝尝鲜。https://spring.io/blog/2021...