本文是一篇来自于一名Java开发高手的文章,他通过对Java标准版6.0的beta版本所作的测试得出结论:该版本有可能给桌面开发带来革命性的影响。
一、 引言
最近发行了Java标准版本6.0的(Java SE 6,也称作Mustang)的beta版。我下载并测试了这个版本,在可试用的第一时间内,我深深地为其新的桌面特征所打动。除了适合于所有的Java平台("2"被删除了)的新的命名惯例外,在许多新特征的改进方面值得我们去深入研究。这些改进可以被划分成两部分:桌面应用和内核方面。
桌面改进主要集中在用户接口(UI)性能和本机OS桌面集成方面。核心主要集中在提高开发者的生产效率和Java应用程序的治理方面。Sun的Mustang开发小组还在Web服务支持和安全性能方面作出重要的改进。
总之,无论你是一位应用程序开发者,系统治理员,工具供给商或是一位安全专家,Java SE 6都有适合于你的内容。本文想具体分析我所试用过的一些新鲜而令人感爱好的特征。
二、 核心特征和改进
Java功能的核心部分被描述为Java的一个专有组成部分(语言部分和它的核心工具),它对于Java的所有其它方面都起基础性的作用,从用户接口API到各种服务器端库等。下面我将分别谈谈Java SE 6在Java核心特征上的改进。
(一) 开发者生产效率
新的Java编译器API答应从Java应用程序内部对Java源程序进行编译。在编译期间,应用程序可以访问库相关信息以及发出警告、错误和其它生成的信息。尽管这个特征似乎不是我常用的,但是我很快就发现了它的一些新用途。例如,我可以使用它来快速构建我所构建的程序的数据存取层。我可以编写代码来生成和编译用于存取应用程序的数据库表的类。最终结果是生成一个JAR文件,这个文件被进一步构建并作为系统的Ant脚本的一部分一同发布。能够从应用程序内部对类进行编译这一实现使得代码生成具有了交互性-我可以以交互方式来修改和构建类。
为了支持Java脚本编程,Java SE 6支持JSR 223,这是一种提供了到Java内部进行存取的脚本语言的框架标准。你可以定位脚本引擎并且在运行时调用它们以运行脚本。该脚本编程API答应你为选择的脚本语言提供Java支持。此外,该Web脚本框架答应脚本代码在任何Servlet容器内生成Web内容。
在调试方面,Java平台调试器(JPDA)也得到进一步增强,开发人员可以针对被锁定的监视对象检测死锁,并同时生成栈跟踪。
(二) 应用程序治理
通过在java.lang.OutOfMemory异常中包含一个完整的堆栈跟踪树并且在堆栈满时生成致命错误记录,Java SE 6进一步加强了内存漏洞分析和探测能力。另外,还增加了一个新的JVM选项以答应你在堆栈满时运行一个脚本。
注重 当MBean属性值(包括在复杂类型内部的那些属性值)超过指定的门槛值时,对于JMX监视API的改进方面答应应用程序发送事件以传递指定的阀值。
对于Solaris 10用户来说,Hotspot JVM for Solaris针对Solaris DTrace系统调试工具提供了钩子机制以跟踪和显示内部JVM活动,例如垃圾收集、类加载、线程、锁机制等。我在JavaOne上面得到有关这方面特征的第一个演示程序,并因此为DTrace系统所提供的调试深度所深深吸引。当一个应用程序运行时,DTrace答应你在任何一处停止代码,观看所有已经加载的库(而不仅仅是Java库,也包括所有系统库),并且能够单步跟踪到Solaris内核中(直到硬件层)。Java对于这种高级调试工具的新的支持使该工具非常适合于系统级上的调试。我现在还记得以前在JVM中出现Solaris Signal-8错误时的情况,假如当时有这种支持,那将会节省我大量的分析时间。
(三) Web服务
Java SE 6包括一些新的API以支持Web服务开发。其中,XML数字签名API答应你保护基于Java的Web服务——通过执行针对XML数据的加密操作。Java-XML Web服务(JAX-WS)2.0 API对以前命名为JAX-RPC的部分作了进一步更新。对于Java-XML绑定(JAXB)2.0的改进包括了对XML模式的支持和把类绑定到特定模式上。最后,针对于XML的流式API(StaX)提供了一种双向的API以便经由事件流读写XML-包括跳过节的能力以及能够直接针对文档的子节进行操作。
(四) 安全性
Java SE 6中增加的安全方面的功能包括GSS/Kerberos集成,Java认证和针对LDAP认证的授权服务(JAAS),还有一个安全证书请求框架-它答应Java应用程序通过许多协议来请求安全证书。
三、 桌面特征和改进
长期以来,Java被认为是一种基于服务器端软件的优秀语言,但是只能作为一种二流的桌面GUI应用开发工具。Sun的Java桌面开发小组一直在致力于改变这种局面。在Java SE 6忠他们成功的把Java与其所运行的主机系统更紧密地集成到一起,这导致的结果是,不仅使Java SE 6在GUI性能方面得到很大的改进,而且也大大改进了Java GUI应用程序的行为。