JDK/JRE/JVM之间的关系
> JDK
Java Development ToolKit(Java开发工具包)。
JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。
> JDK的版本
>> 标准版(Java SE)
Java SE 是Java平台标准版的简称(Java Platform, Standard Edition) (also known as Java 2 Platform) ,用于开发和部署桌面、服务器以及嵌入设备和实时环境中的Java应用程序。Java SE包括用于开发Java Web服务的类库,同时,Java SE为Java EE提供了基础。
Java SE(Java Platform, Standard Edition,Java标准版)就是基于JDK和JRE的。
>> 企业版(Java EE)
enterpsise edtion,企业版
>> Micro版(Java ME)
Java ME是Java微版的简称(Java Platform,Micro Edition),是一个技术和规范的集合,它为移动设备(包括消费类产品、嵌入式设备、高级移动设备等)提供了基于Java环境的开发与应用平台。Java ME目前分为两类配置,一类是面向小型移动设备的CLDC(Connected Limited Device Profile),一类是面向功能更强大的移动设备如智能手机和机顶盒,称为CDC(Connected Device Profile CDC)。
> Java API
我们常常用JDK来代指Java API,Java API是Java的应用程序接口,其实就是前辈们写好的一些java Class,包括一些重要的语言结构以及基本图形,网络和文件I/O等等 ,我们在自己的程序中,调用前辈们写好的这些Class,来作为我们自己开发的一个基础。当然,现在已经有越来越多的性能更好或者功能更强大的第三方类库供我们使用。
> JRE
Java Runtime Enviromental(java运行时环境)。也就是我们说的JAVA平台,所有的Java程序都要在JRE下才能运行。包括JVM和JAVA核心类库和支持文件。与JDK相比,它不包含开发工具——编译器、调试器和其它工具。
> JVM
Java Virtual Mechinal(JAVA虚拟机)。JVM是JRE的一部分,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM 的主要工作是解释自己的指令集(即字节码)并映射到本地的 CPU 的指令集或 OS 的系统调用。Java语言是跨平台运行的,其实就是不同的操作系统,使用不同的JVM映射规则,让其与操作系统无关,完成了跨平台性。JVM 对上层的 Java 源文件是不关心的,它关注的只是由源文件生成的类文件( class file )。类文件的组成包括 JVM 指令集,符号表以及一些补助信息。
> JDK,JRE,JVM三者间的关系