JDK
JDK就是java的开发工具,包含java程序所必须的编译,运行等开发工具和JRE,开发工具如:
- 用于编译的javac命令
- 用于启动jvm启动的java命令
- 用于生成文档的javadoc命令
- 用于打包的jar命令等等
简单的说就是jdk中包含了jre以及一些开发工具。
JRE
JRE可以说是java的运行环境,他包含有java的虚拟机和丰富的系统类库,系统类库就是java提前封装好的一些功能类,直接拿来使用就可以,可以提高开发效率。
简单的说就是jre中包含了jvm以及一些系统类库
JVM
JVM就是java的虚拟机,提供了class的运行环境的支持。
其实真正牛逼的是写jvm这群人,java的口号就是一次编写,可以到处运行。之所以可以到处运行,是jvm的编写者为你做了这些事情,他把你写的代码,变为各个平台可以读懂的指令,从而实现各个平台都可以执行。
这里需要自己补充的是jvm虚拟机的运行内存是如何分配的,不同版本的jvm,可能分配的空间不同,