JDK.1.4新特性及增强内容概要

Java 2 SDK 1.4标准版的新特性如下所列。 包含以前SDK版本的特性的完整列表可以从 特性指南得到。 

Java 2 平台 
XML处理 
新I/O API 
安全 
Java 2DTM技术 
图形I/O结构 
Java打印服务 
AWT 
Swing 
拖放 
故障记录API 
JavaTM Web Start 产品 
长期持续的 JavaBeansTM组件 
JDBCTM 3.0 API 
断言工具 
参数选择API 
Java虚拟机 
性能 
包括IPv6的网络支持 
RMI 
串行化 
Java 命名和目录接口TM (JNDI) 
CORBA, Java IDL, 和RMI-IIOP 
JavaTM调试器结构产品 
国际化 
JavaTM Plug-in 产品 
集合结构 
易用性 
规则表达式 
Math 
反射 
Java 本机接口 
工具 
工具和实用程序 

--------------------------------------------------------------------------------

Java 2平台
XML处理 
针对XML 处理的JavaTM API 已经被添加到 Java 2平台。它通过一套标准的Java 平台API提供对XML的基本处理的支持。 

新的I/O APIs

新的I/O (NIO) APIs在缓冲处理,字符集支持,规则表达式匹配,文件I/O及可升级的网络I/O领域提供新特性及改良的性能。 

安全 
现在 JavaTM 密码系统扩展 (JCE), JavaTM 安全套接字扩展 (JSSE), and JavaTM 鉴定及认证服务(JAAS)安全特性已经被集成到JavaTM 2 SDK, 标准版 (J2SDK), 1.4版中,而不是作为一个可选包。 
这里有两个新安全特性: 
JavaTM GSS-API 能被使用Kerberos V5机制的通讯应用程序用于安全的交换信息。 
java.security.cert包中的 JavaTM Certification Path API 包含新的类和方法,它们允许你建立并验证证书路径(即所说的 "certificate chains(认证链)"). 
由于进口控制限制, J2SDK, 1.4版引入的JCE权限政策文件允许使用“强有力”但是受限的密码系统。 这些文件的在加密强度上“不受限”的版本也可以得到。 
同样由于进口控制限制,这个发布的 JSSE 实现提供强有力的密码套件,但是不允许缺省的SSLSocketFactory 和 SSLServerSocketFactory 被替代。要了解更多信息,请参看 JSSE 参考指南. 
随着 JAAS 被集成进J2SDK, java.security.Policy API 处理基于委托的(Principal-based)质询,而且缺省的政策实现支持基于委托的认证记录。因此,访问控制现在不仅基于什么代码在运行,而且也基于谁在运行它。 
对于动态政策的支持也已经被加入。J2SDK 1.4版以前,类在加载期间通过查询安全政策被静态的和许可绑定。这个绑定的生存期由类加载器的生存期控制。在1.4 版中,这个绑定是不同的,直到安全检查被执行。绑定的生存期由安全政策的生存期控制。 

Java 2DTM 技术 
Java 2D 包含很多新特性: 性能提高, 缓冲图形的硬件加速支持,可插入式的图形I/O结构,新的打印服务API,以及几个新字体。 

图形 I/O 结构 
Java图形 I/O 结构 提供工作于存储于文件及通过网络访问的图形的可插入式的结构。它充分地提供比当前的API在图形加载和保存上更大适应性和强有力的支持。 

Java 打印服务API 
JavaTM打印服务是新的Java 打印 API ,它能使客户端和服务器端应用: 
发现和选择基于他们的能力的打印服务 . 
指定数据打印格式. 
提交支持文档类型的打印作业. 
AWT 
AWT 包的改变集中在提高GUI程序的健壮性,行为及性能上。新的焦点结构代替了原来的实现并且解决了很多由于平台矛盾及AWT和Swing组件间的不相容引起的有关焦点问题的错误。新的全屏独占模式API 通过挂起窗口系统直接写屏提供高性能的图形,有益于像游戏或者其他绘图密集程序的应用。通过新的图形环境方法指出在图形环境下显示器,键盘和鼠标是否被支持的无知支持(Headless support )。对于需要对应用程序的外观进行全面控制的程序而言,自带的框架修饰的关闭现在也是可用的。激活这个功能可以防止绘制框架自带的标题栏,系统菜单,边框或其他依赖本地操作系统的图形组件。按钮中间带有滚动轮的滑轮鼠标的内建支持也可以使用。同样,新的鼠标滑轮监听器类允许用户自定义鼠标滑轮的行为。AWT 包已经被修改为全64位适应,并且能运行在带有64位和32位地址的Solaris 机器上。 

Swing 
很多新特性已经被添加到Swing。新的spinner组件是一个允许用户通过使用一对很小的上/下箭头按钮循环选择一个数字或值的单行输入域。新的格式化文本域 组件允许格式化的日期,数字和字符串,就像只接受十进制价格的文本域。窗口外观(Windows look and feel) 实现已经提供2000/98版本的支持。新的拖放结构提供组件间的无缝拖放支持同时提供实现自己的Swing组件的拖放功能——写一对描述自己的数据模型的细节的方法就是所有需要做的。Swing的进度条组件已经被加强以支持模糊状态;模糊进度条使用连续的动画显示一个耗时的操作在进行而不是显示完成程度。由于巨大的客户要求, 选项卡组件已经被加强以支持可滚动的选项卡。由于这个特性的加入,如果所有的选项不能显示在一行里面,选项卡组件将显示一个可滚动的选项条而不是将选项放入多行。以前以私有方式打包的popup 和 popup factory类现在是公有的,因此程序员可以自定义或创建他们自己的弹出式组件。新的焦点结构完全集成进Swing。 

拖放 
Swing 已经添加应用程序间的数据传输支持。一个拖放操作是一个已经被图形定点设备表示所指定的数据传输请求。在拷贝/粘贴的情况中,数据传输常常用键盘启动。数据传输的能力有两种形式:拖放(DnD) 支持和通过剪切/拷贝/粘贴的剪切板传输。参见 Swing数据传输. 

故障记录API 
Java 故障记录API 通过提供适合终端用户,系统管理员,领域服务工程师及软件开发小组分析的故障记录促进了软件在客户方的服务与维护。故障记录 API捕获诸如安全失效,配置错误,性能瓶颈,和/或应用或平台的错误。 

JavaTM Web Start 产品 
Java Web Start 产品是J2SE 1.4.0绑定的新的应用程序开发技术。使用Java Web Start,你启动应用程序可见简单的单击Web页的链接。如果应用程序不在你的计算机上面, Java Web Start 自动的下载所需要的全部文件。然后它缓存那些文件载你的计算机上,因此那些应用程序在任何你想让它启动的时候都可以从你的计算机上启动--无论是从桌面上的一个图标或者从浏览器上的一个链接。无论你你使用什么方法启动应用程序,该应用程序的最新版本总是呈现给你。 

长期持续的JavaBeans组件 
新的持续模型被设计用来处理图形的JavaBean和固定的外形间的转化过程。新的API适合为图形的JavaBean创建就像文本所描述的他们的特性的档案。 

JDBC 3.0 API 
JDBC 3.0 API由java.sql 包和 javax.sql包组成,为JAVA语言提供通用的数据访问。使用JDBC 3.0 API,你事实上可以访问任何数据源,从关系型数据库到电子数据表以及普通文件。 JDBC技术也提供什么工具及可选择的接口可以被建立的通用基础。 
新特性包括在事务中设置保存点的能力,保持一个被提交事务的结果集,重新使用前面的申明,得到申明中的参数的元数据,得到自动产生的关键字以及一次打开多个结果集。这里有两个新的JDBC数据类型,BOOLEAN 和DATALINK,使用 DATALINK 数据类型可以在数据源外操纵数据。这个发布同时建立了JDBC 服务供应者接口和连接器结构间的关系。 


断言工具 
断言工具已经被加入Java 2 平台。断言是程序员相信计算机程序的状态为真的布尔表达式。例如,在排序一个列表后,程序员可以断言该列表式升序排列的。运行时的断言评估以确定代码的正确性是提高代码的质量的最强有力的工具之一,因为它快速的揭露的程序员在程序的行为上的误解。 

参数选择API 
这个新特性是用于操纵用户参数和配置数据的简单API。应用程序需要参数和配置数据以适应不同的用户、环境及需求。应用程序需要一种存储,得到以及修改这些数据的方法。这个需求由参数选择API来满足。参数选择API有意于取代通常使用的java.util.Properties类,纠正它的很多不足,同时保持它的小巧。 

Java虚拟机 
这个发布的Java虚拟机包含了几个增强内容。 
对于64位SolarisTM-SPARCTM 平台的支持。 
错误处理机制。 
并发垃圾集合器。 
记录垃圾集合事件的新工具。 
Classic虚拟机不再作为Java 2 SDK的一部分。 

性能 
这个发布包含平台的很多方面的性能增强。参看 性能增强 获得有关的详细描述。 

包括IPv6的网络支持 
新特性 包含基于TCP和UDP应用的IPv6支持,无连接/无绑定套接字支持,更灵活的套接字创建、绑定及连接。一个称为Java安全套接字扩展的机制提供通过套接字的加密数据发送;新类 URI允许在不存在协议处理程序的情况下进行URI构造和解析 。FTP协议处理程序被修改以符合当前的标准。缺省的字符集现在是UTF8,并且能使用其他字符集方案的API已经被加入。 
一个新类, 网络接口, 允许接口和地址的枚举, InetAddress中的JNDI DNS SP支持使应用程序可以成为纯Java 命名服务提供者。TCP带外数据为先前的应用提供支持;一个UDP连接方法向操作系统登记目的地址,允许UDP 套接字中的异步错误返回;SOCkS V5 和 V4 TCP的全部支持包含和代理程序在版本上的自动协商。另外,在流请求,应答报头处理及错误处理上也有改进。 


RMI 
java.rmi.server.RMIClassLoader中的某些静态方法 现在将他们的行为代表新的服务提供者接口的实例, java.rmi.server.RMIClassLoaderSpi. 对于给定的应用,这个服务提供者对象可以被设置成增加RMI动态类加载行为。缺省情况下,服务提供者实现 RMIClassLoader的所有静态方法的标准行为.参看类文档RMIClassLoader 和 RMIClassLoaderSpi 获得详细信息。 

串行化 
这个发布在串行化API上有几个改变和加强,包括 
支持已知的非串行化对象不被串行数据流访问。 
支持类方法readObjectNoData。 
重要的错误修正。 

Java 命名及目录接口TM (JNDI) 
Internet 域名服务系统(DNS)服务程序现在是v1.4的一部分。这个组件允许应用程序读取存储于DNS上的数据。 
JNDI轻量目录访问协议服务程序在安全上有所增强,这使得应用程序可以建立基于已经存在的LDAP连接上的安全会议并且可以使用不同的认证协议。 
JNDI CORBA 对象服务(COS) 命名服务程序支持 Interoperable Naming Service (INS) 规范 (99-12-03). 
参看 JNDI 增强获得更多信息。 

CORBA, Java IDL, 和 RMI-IIOP 
Java 2现在包含便携对象适配器(POA)对象请求代理(ORB)。ORB使得CORBA对象间通过对象请求者(客户端)和对象请求服务者间的连接到达相互间的通讯成为可能。POA ORB 允许程序员创建对象实现不同ORB产品间的便携性及提供具有固定身份对象的支持甚至更多。学习更多有关J2SE v.1.3 和 J2SE v.1.4间的IDL的变化,请连接到Java(tm) IDL: J2SE 1.3 和 1.4间的变化. 

JavaTM 调试器结构产品 
热交换
这个特性已经被加入以允许类在调试器的控制下也可以被更新。 
实例过滤器
EventRequests 现在能指定一个实例过滤器,这可以限制通过请求的事件的产生只能产生于那些指定对象。 

VMDeathRequests
现在一个请求可以控制目标虚拟机的终止通知,允许同步清除关闭。 


国际化 
Unicode 3.0 支持
J2SE 1.4中的字符处理是基于Unicode 3.0标准的。这影响java.lang包中的Character类和String类,同时影响java.text包中的文本整理及双向文本分析功能。 
Thai和Hindi支持
Thai和Hindi在所有功能上都支持。参看本地支持文档得到本地支持和输出系统的完整信息。 


JavaTM Plug-in Product 
Java Plug-in 1.4 提供下面的新特性: 多版本支持,因此多版本的JRE可以在相同的环境下开发并且Java Plug-in能选择它需要的版本;通过Java安全套接字扩展(JSSE)而不是浏览器的HTTPS支持;加强applet隐藏,因此诸如GIF,JPEG,XML的其他文件也能和类文件一起被隐藏进JAR;applet持续,因此applets仍能通过浏览器对话。 
1.4版也提供通过标准的,w3c定义的接口访问DOM;断言和故障记录支持;包括applet加载进度条的可用性增强;改良的JAR压缩以加快下载速度。 


集合结构 
J2SDK1.4中集合结构有几个增强, 包括一个通告随机访问的标记接口,基于身份的(而不是基于相等性)Map, insertion-order-preserving Map 以及 Set 实现,以及用于从列表中操纵和返回值的新算法。参看集合结构增强获得细节内容。 

易用性 
新特性支持: 
JTabbedPane上的可记忆的导航 
通过帮助技术的文本编辑 
HTML组件的易用性 
Swing动作的易用性 
使用列表项的首字母的列表导航 

规则表达式 
新包java.util.regex 包含依靠指定模式的规则表达式的字符序列匹配的类。 

Math 
一个新的用于产生素数的高效的方法已经被加入类java.math.BigInteger中,该方法不需要调用者指定什么。 

反射 
某些反射操作,也就是 java.lang.reflect.Field, java.lang.reflect.Method.invoke(), java.lang.reflect.Constructor.newInstance(), 和Class.newInstance(), 为了更高的性能而被重写。反射调用和实例化比以前的发布要快好几倍。 

Java本机接口 
v 1.4中的JNI已经被加强以反映java.nio包的新特性: 直接缓冲。直接缓冲的内容能驻留在本机的内存中而不是在通常的垃圾集合堆中。参看 JNI增强. 
工具及实用程序
参看工具改变得到这里的概要的详细内容。 
java应用程序启动程序为支持新的断言工具提供命令行选项支持。在SolarisTM 操作系统环境下 (SPARCTM 平台标准版) 新的命令行选项可以指定64位或者32位操作。在所有平台,新选项-Xloggc:file 记录指定文件里面的每个垃圾集合事件。 

javadoc工具现在在产生的文档里面包括静态成员的值。对于错误修正,参看上面的工具改变连接。 MIF doclet (从SDK上单独下载) 已经有了一个主要的更新 -- 它从源文件产生FrameMaker和PDF格式的API文档。 

native2ascii工具对包含错误修正,现在正确处理使用Unicode编码的源文件,例如WinNT下的缺省编码。 

idlj 工具现在产生Portable Servant Inheritance Model下的服务端绑定。这个变化包含新的缺省行为和能使你持续产生向后兼容的服务端绑定的新命令行选项。了解更多Portable Servant Inheritance Model。 

orbd工具,或者对象请求代理守护程序(Object Request Broker Daemon), 代替暂态命名服务(Transient Naming Service), tnameserv。ORBD包括暂态命名服务(Transient Naming Service)和持续命名服务 (Persistent Naming Service)。orbd工具在CORBA环境下使得客户端透明的定位并调用服务端上的永久对象。orbd工具合并了服务器管理器(Server Manager),INS(Interoperable Naming Service)及引导命名服务器(Bootstrap Name Server)的功能。当和servertool联合使用的时候,在客户端想访问服务器端的情况下,服务器管理器定位,登记并激活一个服务器。 

servertool 对于这个发布是一个新工具。servertool为应用程序开发者在登记,注销,启动及关闭一个服务器上提供一个易于使用的接口。 

rmic编译器为使用支持远程方法调用(RMI)的便携式对象适配器(POA)提供一个新的选项。POA使得ORB的卖主在其他应用中的移植性成为可能。了解更多关于POA的内容。在使用rmic编译器时激活POA支持,使用参数rmic -iiop -poa. 

图形政策工具包已经被加强以使得可以指定主域用以指出什么用户被授予特定的访问控制权限。

你可能感兴趣的:(JDK.1.4新特性及增强内容概要)