JVM JRE JDK 的关系

废话少说,Java 8 官方概念图

在这里插入图片描述

JVM - Java Virtual Machine(Java 虚拟机)

  • Java 源代码: 后缀为 *.java 的文件;
  • 字节码: 由源代码经过编译(javac)后得到的 *.class 文件(JVM可理解);
  • 机器码: 机器可执行的二进制机器码;

在这里插入图片描述

    Java 虚拟机(JVM)是把 Java 字节码解释为机器可执行的机器码的虚拟机。JVM 针对不同的平台有特定的实现,其目的是为了实现将相同的字节码解释为不同平台可执行的机器码。

如何理解 Java 语言的跨平台、可移植、一次编译到处运行?

  • Java 源代码在不同平台编译后的字节码(.class)文件是相同的,且能够被不同平台的 JVM 识别和解释;
  • JVM 针对不同平台有特定实现(windows、Linux、MacOS),可将字节码解释为执行结果相同的机器码;

通用 JVM 和 Java HotSpot 都实现的功能

  • 自适应编译器 - 运行时分析、检测性能瓶颈或热点代码,Java HotSpot VM 编译代码中的对性能至关重要(调用频率)的部分,以提高性能,同时避免不必要地编译很少使用到的代码(占大部分),Java HotSpot VM 还使用自适应编译器动态地决定如何最好地使用内联技术优化已编译的代码。编译器执行的运行时分析使它可以消除在确定哪些优化将产生最大性能收益方面的推测;
  • 快速内存分配和垃圾收集 - Java HotSpot 技术可为对象提供快速的内存分配,并且提供了快速、高效、最新的垃圾收集器的选择;
  • 线程同步 - Java 编程语言允许使用程序执行的多个并发路径(线程)。Java HotSpot 技术提供了一种线程处理功能,该功能旨在轻松扩展以用于大型共享内存多处理器服务器。

JRE - Java Runtime Environment(Java 运行时环境)

   JRE 提供了运行 Java 编程语言编写的 applet 和应用程序所需的类库,Java 虚拟机和其它组件。可以随应用程序一起重新分发此运行时环境,以使其独立。

JDK - Java Development Kit(Java 开发 套件)

    JDK 包括 JRE 以及命令行开发工具。包括编译器 javac 和 javadoc、jdb、jconsole 等等。

如何选择安装 JRE 或 JDK

开发者

开发者本地毫无疑问的是安装 JDK 。

服务器

服务器安装 JRE 的前提:

  • 发布到服务器的所有文件都是编译好的,包括 JSP 文件;
  • 后期不在服务器上直接修改,导致修改后未重新编译;

在服务器上安装 JDK 的优势:

  • 可以编译 Java 我呢间,方便后期维护;
  • 保证 JSP 文件修改后稳定运行;
  • 程序出现问题时可通过 JDK 提供的工具进行问题排查。

猜你喜欢

转载自blog.csdn.net/dejunyang/article/details/111173707
今日推荐