Java是将代码编译成一种“字节码”,它类似于抽象的CPU指令,然后,针对不同平台编写虚拟机,不同平台的虚拟机负责加载字节码并执行,这样就实现了“一次编写,到处运行”的效果。当然,这是针对Java开发者而言。对于虚拟机,需要为每个平台分别开发。为了保证不同平台、不同公司开发的虚拟机都能正确执行Java字节码,SUN公司制定了一系列的Java虚拟机规范。从实践的角度看,JVM的兼容性做得非常好,低版本的Java字节码完全可以正常运行在高版本的JVM上。

名词解释

javaSE

SE(Standard Edition, 标准版)
包含 标准的 JVM 和标准库

javaEE

EE (Enterprise Edition, 企业版)
SE的基础上增加了大是的API和库,以方便开发WEB应用、数据库、消息服务等。

简单地说,JRE就是运行Java字节码的虚拟机。但是,如果只有Java源码,要编译成Java字节码,就需要JDK,因为JDK除了包含JRE,还提供了编译器、调试器等开发工具。

JRE

Java Runtime Environment (JAVA 运行环境) JVM + Runtime Library(运行时核心库)

JDK

Java Development Kit
开发工具包,包含 JRE(Compiler编译器,debugger调试器)

  • JSR规范:Java Specification Request
  • JCP组织:Java Community Process