近期准备用Java进行找工作的笔试语言,所以一边刷题一边总结碰到的相关问题。
Jdk全称是Java Development Kit,意为Java开发工具包。
Jre全称是Java Runtime Environment,意为Java运行环境。
Jvm全称是Java Virtual Machine,意为Java虚拟机。
我们写好一个java程序,保存为temp.java,要想在自己电脑上成功运行,首先需要把temp.java文件编译为.class文件。.class文件为字节码,Jvm中的Java解释器负责将字节码文件解释成为特定的机器码,映射到机器的CPU等底层设备进行运行。
在运行时,Java程序需要通过javac.exe编译器编译成为.class文件,再通过java.exe程序执行.class文件。但实际上javac.exe以及java.exe程序只是一个执行的外壳,它会加载jvm.dll等文件,这个动态库才是Jvm虚拟机的实际操作处理所在。
Jvm是Jre的一部分。它是一个虚构出来的计算机,模拟仿真各种计算机功能来实现的。Jvm有自己完善的硬件架构,如处理器、堆栈、寄存器等。使用Jvm是为了实现Java的跨平台特性。
Jvm只认识字节码,并将它们解释到系统的API调用。针对不同的系统有不同的Jvm实现,有Linux版本的Jvm实现,也有Windows版本的Jvm实现。但是同一段代码在编译后的字节码是一样的。所以说Java之所以能跨平台使用,是因为Jvm不能跨平台。Java程序的一次编译,多处运行。
Jre中包括了Jvm。
Jdk里面包括了Jre,也就是说安装了Jdk,我们系统里肯定安装了Jre。
如果只是用来部署和运行Java程序,并不需要安装Jdk,只要单独安装Jre即可。