3.jdk和jre和jvm的区别和联系

3.jdk和jre和jvm的区别和联系

 

参考以上图片:

1.名词解释

        1.jdk(Java Development ToolKit)Java标准开发包,是包含了jre的。是java程序设计语言,java虚拟机,java api类库这三者的总称。是用来支撑java开发的最小环境。

        2.JRE( Java Runtime Environment) Java运行环境,是支持java程序运行的标准环境。java api类库中的包含javase api子集的部分和java虚拟机这两部分统称为jre;

        3.jvm(Java Virtual Machine)java虚拟机,为啥java可以一次编译,处处运行?就是依赖这个玩意。Java程序的跨平台特性主要是指字节码文件可以在任何具有Java虚拟机的计算机或者电子设备上运行,Java虚拟机中的Java解释器负责将字节码文件解释成为特定的机器码进行运行

2.流程分析

阶段 对应名词 作用
编译阶段 JDK(包含了JRE和一些开发工具) 主要的任务是将编写好的xxx.java的源代码文件使用java的编译器工具javac将.java文件编译成.class文件
运行阶段 JRE(包含了JVM和一些类库 对编译后的.class文件进行运行,需要使java.exe的运行工具将编译后的.class后缀的字节码文件加载到java虚拟机JVM中
执行阶段 jvm 最终由jvm把.class文件加载进去,并翻译成相应操作系统上的二进制文件和底层平台进行交互。

        这3个阶段,说明了jdk,和jre和jvm的联系。所以你的代码才能跑得起来,运行出结果。

        java.exe是java class文件的执行程序,但实际上java.exe程序只是一个执行的外壳,它会装载jvm.dll(windows下,下皆以windows平台为例,linux下和solaris下其实类似,为:libjvm.so),这个动态连接库才是java虚拟机的实际操作处理所在。

 

 

 

 

 

你的赞赏是我持续创作的动力!虽然即使没有的话,我也会持续创作。哈哈!

3.jdk和jre和jvm的区别和联系