jdk,jre,jvm是java编程语言的三大核心,没有它们的存在,也不会有java的存在!这三个概念,很多资深的java开发人员有时候也不能很好的说明它们之间的区别,今天就来详细的说下它们三者之间的区别。
1.jdk(java development kit,java开发工具包)
(1)jdk是java语言的核心组件,它提供了编译、调试和运行一个Java程序所需的所有工具,可执行文件和二进制文件。
(2)jdk是一个平台的软件,针对不同的os有不同的安装包。jdk是jre的超集,当然它就包含了jre的所有以及Java编译器,调试器和核心类。
jdk=jre + java编译器 + 调试器 + 核心类
2.jre(java runtime environment,java运行时环境)
(1)jre是jvm的实现,它提供了运行java程序的平台。
(2)jre包含了jvm、java二进制文件和其它程序的类文件。jre不包含如java编译器、调试器之类的开发工具。若只需要执行java程序,只需安装jre就足够了。
3.jvm(java virtual machine,java虚拟机)
(1)jvm是java语言的核心,jvm是存在于操作系统之上的一个软件。jvm包含两个子系统:class loader和execution engine
(2)当运行一个java程序时,jvm会将字节码 --> 机器码。jvm也是平台特定的,且提供了核心的java方法,如:内存管理、垃圾回收。
(2)jvm是一种规范, 是可定制的,如:配置jvm 的初始化内存-Xms和最大化内存-Xmx。
(4)jvm被称为虚拟的是因为它提供了一个独立于操作系统和硬件的接口。该特性才是java程序可一次编写多处执行的原因。
总结:
(1)jdk就是用于java开发的,jre就是运行java程序的。
(2)jvm是java的核心,是有平台独立性的软件。