前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面试官:JDK、JRE、JVM 三者什么关系?

面试官:JDK、JRE、JVM 三者什么关系?

作者头像
田维常
发布2020-09-22 15:06:16
2.1K0
发布2020-09-22 15:06:16
举报
文章被收录于专栏:Java后端技术栈cwnait

这个题目在面试题中基本没怎么出现,但在笔试题中倒是经常见到。所以还是有必要拉出来溜溜~

JDK: java development kit, java开发工具包,用来开发Java程序的,针对java开发者。 JRE: java runtime environment, java运行时环境,针对java用户 JVM: java virtual machine,java虚拟机 用来解释执行字节码文件(class文件)的。

JDK

JDK 即为 Java 开发工具包,包含编写 Java 程序所必须的编译、运行等开发工具以及 JRE。开发工具如:

  • 用于编译 Java 程序的 javac 命令。
  • 用于启动 JVM 运行 Java 程序的 Java 命令。
  • 用于生成文档的 Javadoc 命令。
  • 用于打包的 jar 命令等等。

简单说,就是 JDK 包含 JRE 包含 JVM。

JRE

JRE 即为 Java 运行环境,提供了运行 Java 应用程序所必须的软件环境,包含有 Java 虚拟机(JVM)和丰富的系统类库。系统类库即为 Java 提前封装好的功能类,只需拿来直接使用即可,可以大大的提高开发效率。

简单说,就是 JRE 包含 JVM。

JVM

JVM 即为 Java 虚拟机,提供了字节码文件(.class)的运行环境支持。

JDK > JRE > JVM

扩展题1:为什么 Java 被称作是“平台无关的编程语言”?

Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程。

  • Java 源文件( .java )被编译成能被 Java 虚拟机执行的字节码文件( .class )。
  • Java 被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java 虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。
扩展题2:JDK 各版本的新特性?
  • JDK5 ~ JDK10 ,看: https://www.jianshu.com/p/37b52f1ebd4a 。
  • JDK11 ,看: https://www.jianshu.com/p/81b65eded96c 。

对于大多数面试官,肯定不会问你 JDK 各版本的新特性,更多的会问 JDK8 引入了什么重要的特性?一般上,关键的回答是Lambda 表达式和集合之流式操作,然后说说你在项目中怎么使用的。

扩展题3:Java 和 C++ 的区别?
  • 都是面向对象的语言,都支持封装、继承和多态。
  • Java 不提供指针来直接访问内存,程序内存更加安全。
  • Java 的类是单继承的,C++ 支持多重继承;虽然 Java 的类不可以多继承,但是接口可以多继承。
  • Java 有自动内存管理机制,不需要程序员手动释放无用内存。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java后端技术全栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JDK
  • JRE
  • JVM
  • 扩展题1:为什么 Java 被称作是“平台无关的编程语言”?
  • 扩展题2:JDK 各版本的新特性?
  • 扩展题3:Java 和 C++ 的区别?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档