jdk : javase development kit ,包含java编译器、JRE、以及一些基本的类库
jre : java runtime environment , 包含jvm,以及一些类库
jvm :java virtual machine , 相当于一台虚拟计算机,专门用来执行字节码文件
java程序执行过程 :
.java文件 to .class文件 , 用到了java编译器 ,javac.exe就是java编译器
.class文件 to 可执行文件 , 用到了java解释器 ,java.exe就是java解释器
java能跨平台主要原因就是因为jvm的存在:
先说例子 :一个笔帽和多只笔的故事 ,现在我想将这个笔帽盖在这些不同的笔上 ,有什么办法呢 ?
解决方案 :要有一个中间件 ,向上可以对接这个笔帽 , 向下可以对接这多只不同的笔 !
引出结果 :然而jvm就是这个中间件 ,向上它对接的就是java字节码文件 , 向下对接各种不同操作系统 ,
jvm做了所有转换工作 ,所以有了jvm , 就能实现跨平台!
延伸: 如果作为一名开发者,我们就需要安装jdk ;如果我们只是想运行java程序,那么我们就只需要
安装jre , 因为java可执行程序就是一堆class文件汇总 ,有了jre , 就能执行这些class文件!