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

createh53个月前 (02-01)技术教程44

当涉及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中的一部分,用于将字节码编译成本地机器代码以提高执行性能。

相关文章

JVM(Java虚拟机)从0到1全部合集,强烈建议收藏

JVM(Java虚拟机)现在已经属于Java面试的重灾区,大厂面试现在基本属于必考内容,建议大家需要重点掌握。为了方便大家更好的掌握好JVM(Java虚拟机),也为了让知识更系统化,这里我单独把JVM...

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

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

Java虚拟机 JVM 内存模型概述-通俗易懂

首先先来看下JDK1.7和JDK1.8的JVM划分模型从这张图可以看到JDK1.8和JDK1.7相比最大的区别是:1.8版本开始用元空间区取代了永久代,永久代原本主要存放Class和Meta的信息。而...

深入浅出JVM之如何定位线上JVM各种问题

如何排查java进程内存占用率高找到java进程pidjps -l 运用jps命令找到java进程的pid定位占用内存的大对象jmap -histo:live 12628(注:如果输出内容太多,只想看...

腾讯大佬疯狂加持,终于把JVM调优讲明白了,全网首发

前言JVM调优主要是针对垃圾收集器的收集性能优化,令运行在虚拟机上的应用能够使用更少的内存以及延迟获取更大的吞吐量。毫不夸张地说,JVM是现代软件工程最成功的案例之一。因为它自带GC,又有无数可以微调...