[2024.12.14 Java学习] 搞清JRE、JDK、JVM、JavaEE、JavaSE、JavaME的区别与联系

首先是JDK、JRE和JVM之间的关系

  • JVM:  Java Virtual Machine,即Java虚拟机,有一套自己完整的硬件结构,如处理器、寄存器、运算器等等,其中的Java解释器能够屏蔽具体操作系统相关信息,将字节码文件转换为特定的机器码交给本地机运行,这似乎也是为什么Java具有跨平台的特性。

  • JRE:  Java Runtime Environment,即Java运行环境,包含了上述的JVM和一些类库。PS:在安装时候发现除了自定义目录下的JRE外,还在JDK1.8目录下发现了JRE,因为JDK里许多工具本质也都是Java编写,因此需要JDK1.8目录下的JRE进行支持,而对于我们自己编写的Java程序而言,则是依赖任意一套都可以,这由java.exe决定(可能不止一个java.exe)。

  • JDK:  Java Development ToolKit,即Java开发工具包,包含JRE,bin目录下包含最主要的功能javac.exe编译器,能将源代码编译为字节码(javac.exe将Java源码编译为字节码,java.exe装载JVM将字节码转为机器码执行)。

  • 所以一个java程序的执行流程应该是:编写了.java文件后,JDK中的javac.exe将.java编译为.class字节码文件,使用JRE中的java.exe启动JVM加载字节码文件,JVM在验证字节码文件的安全性后,使用即时编译器(JIT)将字节码编译为本地机器码执行。

Java三大版本JavaEE、JavaSE和JavaME之间的区别

  • JavaME(Java Micro Edition),主要用于移动式设备和嵌入式设备的开发(如手机、电视机等),有一套为嵌入式设备专门设计的api接口规范。

  • JavaSE(Java Standard Edition),Java标准版本,可用于一般的桌面开发,提供了Java核心功能和基础类库,包含了Java Web服务开发的类。

  • JavaEE(Java Enterprise Edition),Java企业级版本,对于大型的企业级应用来说,需要更多的功能来支持分布式计算、事务管理、安全性等方面的需求,JavaSE则在JavaEE基础上,提供了各类api、Web容器、应用服务器等,能更好、更方便地实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 /3.0应用程序

PS: SOA是一种软件架构风格,通过将系统功能设计为一组松散耦合的服务来实现模块化和复用。
posted @ 2024-12-14 17:18  Luna-Evelyn  阅读(78)  评论(0)    收藏  举报