J2SE简介与J2EE、J2ME的比较

Java2平台包括:标准版(J2SE)、企业版(J2EE)和微缩版(J2ME)三个版本。

J2SE,J2ME和J2EE,这也就是SunONE(Open NetEnvironment)体系。

J2SE就是Java2的标准版,主要用于桌面应用软件的编程;

J2ME主要应用于嵌入式系统开发,如手机和PDA的编程;

J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。

  Standard Edition(标准版) J2SE 包含那些构成Java语言核心的类。比如:数据库连接、接口定义、输入/输出、网络编程

  Enterprise Edition(企业版) J2EE 包含J2SE 中的类,并且还包含用于开发企业级应用的类。比如:EJB、servlet、JSP、XML、事务控制

  Micro Edition(微缩版) J2ME 包含J2SE中一部分类,用于消费类电子产品的软件开发。比如:呼机、智能卡、手机、PDA、机顶盒

简单讲就是:

  J2SE: java 2 Standard edition (java 2 标准版)

  J2EE: java 2 enterprise edition( Java 2 企业版)

  J2ME: java 2 micro edition (Java 2 微缩版)

  他们的范围是:J2SE包含于J2EE中,J2ME包含了J2SE的核心类,但新添加了一些专有类

  应用场合,API的覆盖范围各不相同。

  笼统的讲,可以这样理解:J2SE是基础;压缩一点,再增加一些CLDC等方面的特性就是J2ME;扩充一点,再增加一些EJB等企业应用方面的特性就是J2EE。

  补充一点J2EE更恰当的说,应该是JAVA2企业开发的技术规范,不仅仅是比标准版多了一些类。J2EE又包括许多组件,如Jsp, Servlet, JavaBean, EJB, JDBC, JavaMail等。

  J2SE商业版本,标准版本 (Java2 Standard Edition) 定位在客户端,主要用于桌面应用软件的编程。

  J2SE 包含那些构成Java语言核心的类。

  比如:数据库连接、接口定义、输入/输出、网络编程

  J2SE 是J2EE的基础,他大量的JDK代码库是每个要学习J2EE的编程人员必须掌握的。

  从JDK 5.0开始,不再叫J2SE,改名为 Java SE了,因为那个2已经失去了其应该有的意义。

J2SE的特性:

       易于开发性

  您也许已经见过这样的报告,即一些新的 Java 语言变化包含易于开发性主题。这些变化包括泛型、元数据、autoboxing、增强的 for 循环、枚举类型、静态导入、C 风格的格式化 I/O、可变参数、并发实用程序以及更简单的 RMI 接口生成。

  JSR 201 包括如下四个语言变化:增强的 for 循环、枚举类型、静态导入和 autoboxing;JSR 175 指定了新的元数据功能,而 JSR 14 则详细说明了泛型。

  javac 编译器执行的默认语言规范是版本 1.4(并非最新版本)。这意味着要利用以下语言变化的任何好处,需要向 javac 命令传递参数 -source 1.5。

  元数据

  J2SE 1.5 (并非最新版本)中的元数据特性提供这样的能力,即向 Java 类、接口、方法和字段关联附加的数据。这些附加的数据或者注释,可以被 javac 编译器或其他工具读取,并且根据配置不同,可以被保存在类文件中,也可以在运行时使用 Java 反射 API 被发现。

  向 Java 平台增加元数据的一个主要原因是,使得开发工具和运行工具有一个通用的基础结构,以减少开发和部署所需的成本。工具可以使用元数据信息生成附加的源代码,或者在调试时提供附加信息。

  下面的例子用元数据工具创建了一个调试元数据注释,这些元数据注释然后又简单地在运行时显示出来。可以想像,大部分的元数据标签形成一个标准,即一个良好规范的集合。利用一个元数据处理工具,许多重复的代码编写步骤可以减少成一个简练的元数据标签。

  泛型

  泛型一直是 Java 社团所广泛期待的,现在已经是 J2SE 1.5 的一部分了。最先见到使用泛型的地方是在 Collections API 中。Collections API 提供可以被多个 Java 类型使用的公共功能性,比如 LinkedLists、ArrayLists 和 HashMaps。下一个例子使用 1.4.2 库和默认的 javac 编译模式。

  泛型化 API 的用户必须使用 <> 符号简单地声明在编译类型中使用的类型。不需要任何类型转换,在本例中试图向一个 Integer 类型的集合中添加 String 对象将会在编译时被捕获。

  因此,泛型允许 API 设计者提供这样的公共功能性:可以与多种数据类型一起使用,也可以在编译时出于类型安全对它进行检查。

  设计自己的 Generic API 比起只是使用它们来说要稍微复杂一些。请从查看 java.util.Collection 源代码和 API 指南开始。

  并发实用程序

  并发实用程序库由 Doug Lea 定义在 JSR-166 中,是 J2SE 1.5 平台中流行的并发软件包的一个特殊版本。它提供强大的、高级别的线程构造,包括 executors(这是一个线程任务框架)、线程安全队列、Timers、锁(包括原子锁)和其他同步原语。

  着名的旗语(semaphore)是这样一个锁。旗语与现在使用的 wait 的使用方式相同,用于限制对一块代码的访问。旗语更加灵活,并且也允许许多并发的线程访问,同时允许您在获得一个锁之前对它进行测试。

  可扩展性和性能

  1.5 版本承诺在可扩展性和性能方面的改进,新的重点在于启动时间和内存占用,使它更加易于以最大的速度部署应用程序。

  最重大的一个更新是引入了 Hotspot JVM 中的类数据共享。该技术不仅在多个正在运行的 JVM 之间共享只读数据,而且改进了启动时间,因为核心的 JVM 类都是预先打包的。

  性能工效是 J2SE 1.5 中的一个新特性,这意味着如果您一直使用的是以前版本中专门的 JVM 运行时选项, 那么可能值得不用选项或者用很少的选项重新验证您的性能。

  监控和可管理性

  监控和可管理性是 Java 平台中的 RAS (Reliability, Availability, Serviceability,即可靠性、可用性、可服务性) 的一个关键组件。

  JVM Monitoring & Management API (JSR-174) 指定一组全面的可以从正在运行的 JVM 进行监控的 JVM internals。 该信息可通过 JMX (JSR-003) MBeans 访问到,也可以使用 JMX 远程接口 (JSR-160) 和行业标准 SNMP 工具而远程访问得到。

  桌面客户端

  Java 桌面客户端保留有 Java 平台的一个关键组件,并且这一点成了 J2SE 1.5 中许多改进的焦点。

  这个 Beta 版本包含启动时间和内存占用方面的一些早期改进。该版本不仅更快,并且 Swing 工具集采用了一个暂新的叫做 Ocean 的主题。

  通过建立 J2SE 1.4.2 中的更新,GTK 和 Windows XP 外观方面有了更进一步的改进。

  具有最新 OpenGL 驱动程序并且选择了图形卡的 Linux 和 Solaris 用户,可以使用下面的运行时属性从 Java2D 获得本机硬件加速。

  核心 XML 支持

  J2SE 1.5 引入了核心 XML 平台的几个修订,包括 XML 1.1 和 Namespace、XML Schema、SAX 2.0.1、XSLT 和快速 XLSTC 编译器,以及最后的 DOM 第 3 层支持。

  除了支持核心 XML 之外,未来版本的 Java Web Services Developer Pack 将交付最新的 Web 服务标准:JAX-RPC & SAAJ (WSDL/SOAP)、JAXB、XML Encryption and Digital Signature,以及用于注册的 JAXR。

  辅助字符支持

  32 位的辅助字符支持作为传输到 Unicode 4.0 支持的一部分,已经慎重地添加到该平台。辅助字符被编码为一对特殊的 UTF16 值,以生成一个不同的字符或者码点(codepoint)。一个代理对(surrogate pair)是一个高 UTF16 值和后面的一个低 UTF16 值的组合。这些高值和低值来自一个特殊范围的 UTF16 值。

  一般来说,当使用 String 或者字符序列时,核心 API 库将透明地为您处理新的辅助字符。但是因为 Java "char" 仍然保留为 16 位,所以非常少的一些使用 char 作为参数的方法,现在有了足够的可以接受 int 值的方法,其中 int 值可以代表新的更大的值。特别是 Character 类,具有附加的方法来检索当前的字符和接下来的字符,以便检索辅助的码点值。

       JDBC RowSets

  JDBC 行集支持有两个主要的更新。CachedRowSet 包含从数据库检索的行的内存中的集合。但是它们也是不连接的,这意味着以后更新可以与数据库重新同步。另一个组件是 WebRowSet,它使用数据库行通过 XML 来传输数据。

J2SE的基本简介与J2EE/J2ME的差异的更多相关文章

  1. J2SE J2EE J2ME的区别

    J2SE J2EE J2ME的区别 J2SE J2EE J2ME的区别多数编程语言都有预选编译好的类库以支持各种特定的功能,在Java中,类库以包(package)的形式提供,不同版本的Java提供不 ...

  2. j2se j2ee j2me

    多数编程语言都有预选编译好的类库以支持各种特定的功能,在Java中,类库以包(package)的形式提供,不同版本的Java提供不同的包,以面向特定的应用. Java2平台包括标准版(J2SE).企业 ...

  3. jdk,j2ee,j2se,j2me的概念区别

    jdk,j2ee,j2se,j2me的概念区别1.JDK是Java development toolkit,相当于是Java的库函数,是编译,运行java程序的工具包.J2EE是Java 2 ente ...

  4. 【java】J2EE、J2SE和J2ME的区别

    本文向大家简单介绍一下J2EE.J2SE.J2ME概念及区别,J2EE,J2SE,J2ME是java针对不同的的使用来提供不同的服务,也就是提供不同类型的类库. Java2平台包括:标准版(J2SE) ...

  5. JDK、J2EE、J2SE、J2ME的区别

    JDK.J2EE.J2SE.J2ME的区别 你对JDK.J2EE.J2SE.J2ME概念是否了解,这里和大家分享一下JDK.J2EE.J2SE.J2ME的概念以及他们的关系区别,相信本文介绍一定会让你 ...

  6. 转载 j2ee j2se j2me 区别,mvc 和ssh联系理解

    [转]J2SE J2EE J2ME的区别 以及 MVC与SSH对应关系 2014-3-6阅读322 评论0 J2SE J2EE J2ME的区别多数编程语言都有预选编译好的类库以支持各种特定的功能,在J ...

  7. [转载]JDK、SDK、J2EE、J2SE、J2ME的区别

    [转载]JDK.SDK.J2EE.J2SE.J2ME的区别 来源: https://www.cnblogs.com/liangyihui/p/5905875.html Java的名词真的是多啊 JDK ...

  8. Java2_J2EE、J2SE和J2ME的区别

    解析J2EE.J2SE.J2ME.JDK的区别       本文向大家简单介绍一下JDK.J2EE.J2SE.J2ME概念及区别,J2EE,J2SE,J2ME是java针对不同的的使用来提供不同的服务 ...

  9. Eclipse管理Java工程(j2se/j2ee/maven)

    Eclipse管理J2SE/J2EE(Maven)项目 eclipse是一个集成开发工具,有编译,运行,打包部署等功能.eclipse可以新建多种项目,不同的项目有不同的IDE层次结构,方便用户管理资 ...

随机推荐

  1. MySQL 日期时间 专题

    1.1 获得当前日期+时间(date + time)函数:now() 除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数: current_timestamp()   curr ...

  2. mysql常见操作汇总 专题

    mysql中in多个字段 1. 基本用法 SELECT * FROM USER WHERE , , ); 2. 多个字段同时使用 SELECT * FROM USER WHERE (, ),(, ), ...

  3. window下nodejs爬取gb2312网页出现乱码的解决方案

     发布于 2012-8-22 18:15  5230 次浏览  最后一次编辑是 2013-2-18 22:31 linux环境下,我们可以通过 iconv 这个C++模块来处理Node.JS不支持的字 ...

  4. 全面剖析Redis Cluster原理和应用 (good)

    redis redis cluster注意的问题 : 1.‘cluster-require-full-coverage’参数的设置.该参数是redis配置文件中cluster模式的一个参数,从字面上基 ...

  5. adb help

    Android Debug Bridge version 1.0.32Revision cc6ae925e394-android -a - directs adb to listen on all i ...

  6. Win10《芒果TV》商店版更新v3.7.0卡牌版:为小冰生日献礼,为秋季创意者更新铺路

    由宇宙跨物种新晋主持微软小冰和绍刚叔联袂主持的中国首档原创顶尖科技秀<我是未来>正在芒果台热播,Win10版<芒果TV>更新v3.7.0卡牌版,为微软小冰9月17日生日献礼. ...

  7. WPF 使用Trigger遇到的问题

    1. 在style中使用trigger无效的场景 原因是直接在对象上设置值将导致style中的值无效,去掉TextBlock对象的Foreground后,Trigger将正常工作 <TextBl ...

  8. MySQL创建数据库并插入数据

    启动MySql 启动服务:sudo service mysql start 登陆:mysql -u root 新建数据库 CREATE DATABASE <数据库名>; 在大多数SQL系统 ...

  9. Linux基础命令杂记

    今天又一次搞Linux生产环境搭建.这是种步骤很多,很繁琐而且又不得不做的事情.虽然做过很多次,但还是有很多步骤.命令不记得,每一次到处找资料很麻烦,于是将一些步骤记下,以便查找. 登录远程MySQL ...

  10. OpenSSL所有版本的变化,从1.1开始架构有所变化,生成的lib名称也有所不同了,以及对Qt的影响

    The complete explanation is that 1.0.x and 1.1.x do not have the same naming conventions for the gen ...