Java基础面试题, JDK 和 JRE 有什么区别?
Java基础面试题, JDK 和 JRE 有什么区别?
QA
Step 1
Q:: JDK 和 JRE 有什么区别?
A:: JDK(Java Development Kit)是Java开发工具包,包含了开发Java应用程序所需的所有工具,如编译器(javac)、Java文档工具(javadoc)、调试工具(jdb)等。JDK还包含了一个完整的JRE(Java Runtime Environment),即Java运行时环境。JRE是一个软件包,提供Java应用程序所需的类库、Java虚拟机(JVM)和其他资源,用于运行Java程序。简而言之,JDK是开发Java程序的工具包,而JRE是运行Java程序的环境。
Step 2
Q:: JVM(Java虚拟机)是什么,它的作用是什么?
A:: JVM(Java虚拟机)是Java程序运行的核心。它负责将Java字节码转换为机器码,并确保Java程序可以在不同的平台上运行而无需重新编译。JVM还提供了内存管理、垃圾回收、线程管理等功能,使得Java应用程序具有平台无关性和高效的内存管理能力。
Step 3
Q:: 什么是字节码(Bytecode),它与JVM之间的关系是什么?
A:: 字节码是Java编译器生成的一种中间表示形式,JVM能够理解和执行这种表示形式。Java程序首先被编译成字节码,然后JVM将字节码转换为与特定平台相关的机器码。这种设计使得Java程序可以“一次编写,到处运行”,因为不同平台的JVM可以理解相同的字节码并进行适配。
Step 4
Q:: Java的垃圾回收机制是如何工作的?
A:: Java的垃圾回收机制通过自动管理内存来减少内存泄漏和减少手动内存管理的负担。Java使用一种称为标记-
清除(Mark and Sweep)的垃圾回收算法。JVM会定期扫描堆内存,标记不再被引用的对象,然后清除这些对象释放内存。这样确保内存资源能够得到有效利用并且程序运行更稳定。