本篇内容主要讲解“JDK、JRE、JVM三者之间有什么关系”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JDK、JRE、JVM三者之间有什么关系”吧!
这个题目在面试题中基本没怎么出现,但在笔试题中倒是经常见到。所以还是有必要拉出来溜溜~
JDK: java development kit, java开发工具包,用来开发Java程序的,针对java开发者。
JRE: java runtime environment, java运行时环境,针对java用户
JVM: java virtual machine,java虚拟机 用来解释执行字节码文件(class文件)的。
JDK 即为 Java 开发工具包,包含编写 Java 程序所必须的编译、运行等开发工具以及 JRE。开发工具如:
用于编译 Java 程序的 javac 命令。
用于启动 JVM 运行 Java 程序的 Java 命令。
用于生成文档的 Javadoc 命令。
用于打包的 jar 命令等等。
简单说,就是 JDK 包含 JRE 包含 JVM。
JRE 即为 Java 运行环境,提供了运行 Java 应用程序所必须的软件环境,包含有 Java 虚拟机(JVM)和丰富的系统类库。系统类库即为 Java 提前封装好的功能类,只需拿来直接使用即可,可以大大的提高开发效率。
简单说,就是 JRE 包含 JVM。
JVM 即为 Java 虚拟机,提供了字节码文件(.class
)的运行环境支持。
JDK > JRE > JVM
Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程。
Java 源文件( .java
)被编译成能被 Java 虚拟机执行的字节码文件( .class
)。
Java 被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java 虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。
JDK5 ~ JDK10 ,看:
https://www.jianshu.com/p/37b... 。
JDK11 ,看:
https://www.jianshu.com/p/81b... 。
对于大多数面试官,肯定不会问你 JDK 各版本的新特性,更多的会问 JDK8 引入了什么重要的特性?一般上,关键的回答是Lambda 表达式和集合之流式操作,然后说说你在项目中怎么使用的。
都是面向对象的语言,都支持封装、继承和多态。
Java 不提供指针来直接访问内存,程序内存更加安全。
Java 的类是单继承的,C++ 支持多重继承;虽然 Java 的类不可以多继承,但是接口可以多继承。
Java 有自动内存管理机制,不需要程序员手动释放无用内存。
到此,相信大家对“JDK、JRE、JVM三者之间有什么关系”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。