JDK,JRE和JVM的区别与联系有哪些?
概念
-
JDK(Java Development Kit)是一个完整的Java软件开发工具包,包括了
- 运行时环境JRE
- 编译器Javac
- 调试工具Jconsole
- 分析工具Jvisualbm
- 文档生成工具JavaDoc等
-
JRE(Java Runtime Environment)是Java运行时环境,包括了
- JVM
- Java核心类库
-
JVM(Java virtual Machine)是指Java虚拟机,负责将字节码转换成特定机器代码,JVM包括了
- 内存管理
- 垃圾回收
- 安全机制
区别与联系
- JDK是开发工具包,用于Java程序开发;JRE是Java运行时环境,用于代码运行
- JDK包含JRE,JDK和JRE均包含JVM
Java语言的平台无关性是如何实现的?
- Java程序都运行在JVM上,而JVM屏蔽了底层操作系统和硬件的差异
- 执行一个Java程序时,首先通过JavaC将程序编译成.class格式字节码文件,再交给JVM解释成特定平台的机器码
- Java规定了基本数据的取值范围和行为在各个平台保持一致
Java语言是编译型还是解释型语言?
- Java不能单纯的被分类成编译型或者解释型代码
- 通常认为Java是执行了编译和解释两个过程,是一种先编译后解释执行的语言
- Java还存储JIT即时编辑器,可将热点代码编译成为本地机器码
- JDK9开始提供了AOT编译器,可以将所有代码编译成为机器码