主题:J2EE、J2SE、J2ME之间的关系
J2EE、J2SE、J2ME之间的关系
java 体系比较庞杂,功能繁多,这也导致很多人在自学 Java 的时候总是感觉无法建立全面的知识体系,无法从整体上把握 Java 的原因。在这里JAVA私塾把 Java 各版本之间的关系简单介绍一下。
Java 分成三种版本,分别是 Java 标准版(J2SE)、Java 微缩版(J2ME)和 Java 企业版(J2EE),每一种版本都有自己的功能和应用方向。
J2SE,JAVA的标准版,用于开发一些桌面的应用程序,JAVA语言的基础;
J2EE,JAVA的企业版,用于开发一些企业级的应用,它的前提是学好J2SE;
J2ME,JAVA的micro版,用于开发一些嵌入式设备的程序,比如手机,PDA,电视机顶盒等程序的开发,也要求有J2SE的基础。
三个版本之间的关系如图:
[img]http://hiphotos.baidu.com/javass/pic/item/c211511f68159fef1bd5769a.jpg[/img]
Java 的 API 类库之中有一组所谓的核心类(CoreClass,即 java.*),在核心类之外还有所谓的扩充类(Extended Class,即 javax.*)。根据对这两种类的支持程度,进而区分出几种不同的 Java 版本。
我们必须以 Java Standard Edition(J2SE)作为基准,这个版本做了所有 Java 标准规格之中所定义的核心类,也支持所有的 Java 基本类。J2SE 定位在客户端程序的应用上。
从 J2SE 往外延伸,其外面为 Java Enterprise Edition(J2EE),此版本除了支持所有的标准核心类外,而且还增加了许多支持企业内部使用的扩充类,支持 Servlet/JSP 的javax.servlet.* 类、支持 Enterprise Java Bean 的 javax.ejb.* 类。当然,J2EE 必定支持所有的 Java 基本类。J2EE 定位在服务器端(server-side)程序的应用上。
从 J2SE 向内看,是 Java Micro Edition(J2ME),它所支持的只有核心类的子集合,在 J2MECLDC 的规格之中,只支持 java.lang.* 、java.io.* 、以及 java.util.* 这些类。此版本也增加了一些支持"微小装置"的扩充类,如 javax.microedition.io.* 类。然而,此版本并不支持所有的 Java 基本类,就标准的 J2MECLDC, 也就是能在 PalmOS 上执行KVM(KVirtualMachine)来说,它就不支持属于浮点数(float、double)的 Java 基本类。J2ME定位在嵌入式系统的应用上。
最里层,还有一个 Java 的 Smart Card 版本,原本在 Java 的文件之中并没有这样定义,但是将它画在 J2ME 内部是很合理的。因为 SmartCard 版本只支持 java.lang.* 这个核心类,比起 J2ME 所支持的核心类更少,但它也有属于自己的扩充类,如 javacard.*、javacardx.*SmartCard版本只支持 Boolean 与Byte 这两种Java 基本类, 此版本定位在SmartCard的应用上。
更多资料请登陆java私塾的网站,上面还有一些视频教程,大家可以免费下载:www.javass.cn
java 体系比较庞杂,功能繁多,这也导致很多人在自学 Java 的时候总是感觉无法建立全面的知识体系,无法从整体上把握 Java 的原因。在这里JAVA私塾把 Java 各版本之间的关系简单介绍一下。
Java 分成三种版本,分别是 Java 标准版(J2SE)、Java 微缩版(J2ME)和 Java 企业版(J2EE),每一种版本都有自己的功能和应用方向。
J2SE,JAVA的标准版,用于开发一些桌面的应用程序,JAVA语言的基础;
J2EE,JAVA的企业版,用于开发一些企业级的应用,它的前提是学好J2SE;
J2ME,JAVA的micro版,用于开发一些嵌入式设备的程序,比如手机,PDA,电视机顶盒等程序的开发,也要求有J2SE的基础。
三个版本之间的关系如图:
[img]http://hiphotos.baidu.com/javass/pic/item/c211511f68159fef1bd5769a.jpg[/img]
Java 的 API 类库之中有一组所谓的核心类(CoreClass,即 java.*),在核心类之外还有所谓的扩充类(Extended Class,即 javax.*)。根据对这两种类的支持程度,进而区分出几种不同的 Java 版本。
我们必须以 Java Standard Edition(J2SE)作为基准,这个版本做了所有 Java 标准规格之中所定义的核心类,也支持所有的 Java 基本类。J2SE 定位在客户端程序的应用上。
从 J2SE 往外延伸,其外面为 Java Enterprise Edition(J2EE),此版本除了支持所有的标准核心类外,而且还增加了许多支持企业内部使用的扩充类,支持 Servlet/JSP 的javax.servlet.* 类、支持 Enterprise Java Bean 的 javax.ejb.* 类。当然,J2EE 必定支持所有的 Java 基本类。J2EE 定位在服务器端(server-side)程序的应用上。
从 J2SE 向内看,是 Java Micro Edition(J2ME),它所支持的只有核心类的子集合,在 J2MECLDC 的规格之中,只支持 java.lang.* 、java.io.* 、以及 java.util.* 这些类。此版本也增加了一些支持"微小装置"的扩充类,如 javax.microedition.io.* 类。然而,此版本并不支持所有的 Java 基本类,就标准的 J2MECLDC, 也就是能在 PalmOS 上执行KVM(KVirtualMachine)来说,它就不支持属于浮点数(float、double)的 Java 基本类。J2ME定位在嵌入式系统的应用上。
最里层,还有一个 Java 的 Smart Card 版本,原本在 Java 的文件之中并没有这样定义,但是将它画在 J2ME 内部是很合理的。因为 SmartCard 版本只支持 java.lang.* 这个核心类,比起 J2ME 所支持的核心类更少,但它也有属于自己的扩充类,如 javacard.*、javacardx.*SmartCard版本只支持 Boolean 与Byte 这两种Java 基本类, 此版本定位在SmartCard的应用上。
更多资料请登陆java私塾的网站,上面还有一些视频教程,大家可以免费下载:www.javass.cn