程序员社区

(Java基础面试题)JDK和JRE和JVM的区别

1. JDK

JDK(Java SE Development Kit),Java标准的开发包,提供了编译、运行Java程序所需要的各种工具和资源,包括了Java编译器、Java运行时环境、以及常用的Java类库等。

2. JRE

JRE(Java Runtime Environment),Java运行时环境,用于解释执行Java的字节码文件。普通用户只需要安装JRE来运行Java程序即可,而作为一名程序员必须安装JDK,来编译、调试程序。

3. JVM

JVM(Java Virtual Mechinal),Java虚拟机,是JRE的一部分。它是整个Java实现跨平台的核心,负责解释执行字节码文件,是可运行Java字节码文件的虚拟计算机。所有平台上的JVM向编译器提供相同的接口,而编译器只需要面向虚拟机,生成虚拟机能识别的代码,然后由虚拟机来解释执行。

当使用Java编译器编译Java程序时,生成的是与平台无关的字节码,这些字节码只面向JVM。也就是说JVM是运行Java字节码的虚拟机。

不同平台的JVM是不同的,但是他们都提供了相同的接口。JVM是Java程序跨平台的关键部分,只要为不同平台实现了相同的虚拟机,编译后的Java字节码就可以在该平台上运行。

Java面试题

为什么要采用字节码:

在 Java 中,JVM 可以理解的代码就叫做字节码(即Java源代码经过虚拟机编译器编译后扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以 Java 程序运行时比较高效,而且,由于字节码并不针对一种特定的机器,因此,Java 程序无须重新编译便可在多种不同操作系统的计算机上运行。

什么是跨平台:

所谓跨平台性,是指java语言编写的程序,一次编译后,可以在多个系统平台上运行。

实现原理:Java程序是通过java虚拟机在系统平台上运行的,只要该系统可以安装相应的java虚拟机,该系统就可以运行java程序。

Java 程序从源代码到运行需要三步:

(Java基础面试题)JDK和JRE和JVM的区别插图1

4. 总结

  1. JDK 用于开发,JRE 用于运行java程序 ;如果只是运行Java程序,可以只安装JRE,无序安装JDK。
  2. JDk包含JRE,JDK 和 JRE 中都包含 JVM。
  3. JVM 是 Java 编程语言的核心并且具有平台独立性。
赞(0) 打赏
未经允许不得转载:IDEA激活码 » (Java基础面试题)JDK和JRE和JVM的区别

一个分享Java & Python知识的社区