这个题目在面试题中基本没怎么出现,但在笔试题中倒是经常见到。所以还是有必要拉出来溜溜~
JDK: java development kit, java开发工具包,用来开发Java程序的,针对java开发者。 JRE: java runtime environment, java运行时环境,针对java用户 JVM: java virtual machine,java虚拟机 用来解释执行字节码文件(class文件)的。
JDK 即为 Java 开发工具包,包含编写 Java 程序所必须的编译、运行等开发工具以及 JRE。开发工具如:
简单说,就是 JDK 包含 JRE 包含 JVM。
JRE 即为 Java 运行环境,提供了运行 Java 应用程序所必须的软件环境,包含有 Java 虚拟机(JVM)和丰富的系统类库。系统类库即为 Java 提前封装好的功能类,只需拿来直接使用即可,可以大大的提高开发效率。
简单说,就是 JRE 包含 JVM。
JVM 即为 Java 虚拟机,提供了字节码文件(.class
)的运行环境支持。
JDK > JRE > JVM
Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程。
.java
)被编译成能被 Java 虚拟机执行的字节码文件( .class
)。对于大多数面试官,肯定不会问你 JDK 各版本的新特性,更多的会问 JDK8 引入了什么重要的特性?一般上,关键的回答是Lambda 表达式和集合之流式操作,然后说说你在项目中怎么使用的。