有关JDK、JRE、JVM的面试题

1. JDK、JRE、JVM有什么区别?

1.JVM是Java Virtual Machine(Java虚拟机)的简称。它是java运行环境的一部分,是一个虚构出来的计算机,它是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM是用来解析和运行Java程序的,所有的java程序会首先被编译为.class的类文件,通过jvm把class文件解释给本地操作系统cpu执行。

2.JRE是Java Runtime Environment的简称。JRE是可以在其上运行、测试和传输应用程序的Java平台。他包括Java虚拟机(JVM)、JAVA核心类库和支持文件。在JDK的安装目录里你可以找到jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库。

3.JDK是Java Development Kit的简称。JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

2.什么是Java语言的跨平台性?如何体现?

源代码文件是人工编写的文件,如.cpp、.java等由相应语言代码组成的源文件。

源文件不能直接被计算机执行,需要相应的编译器,将源代码进行翻译(编译),得到的是汇编语言组成的汇编程序(不同cpu、操作系统平台编译出的汇编代码不同)。

不同的汇编程序经过汇编器的汇编,得到的是计算机可以运行的二进制文件,程序就可以执行了(如果需要生成可执行文件,如exe等,需要经过链接器将文件再次“打包”)。

那我们只要在需要运行java应用程序的OS(操作系统)上,安装一个JVM,由JVM来负责Java程序在该系统中的运行即可。不同的OS(操作系统)都有与之对应的JVM,所以只需要写一个Java程序,就可以在多个不同的操作系统上执行。这样就实现了Java程序的跨平台性。也称为Java具有良好的可移植性。


经验分享 程序员 微信小程序 职场和发展