java胜出_Java6印象:桌面应用胜出者

Java

beta已经发布了,虽然离正式的FCS还有一段时间,一个朋友还是急不可耐地下载了Java6进行试用,他认为Java6将会给Java桌面开发带来革命性的变化。

最近发版的Java6(Mustang)beta是功能齐全足够稳定的版本,我下载并在第一周测试了这一版,

我尤其被它的桌面功能所吸引,除了命名习惯改变了(2不再Java

SE中出现),在许多新功能上都值得探索。改进总的来说分为两类:桌面开发和内核。

桌面开发改进主要体现在用户界面(UI)效率以及本地操作系统桌面集成上。核心改进主要集中在增加开发效率和Java应用管理上。Sun的Mustang开发小组对Web服务和安全改进做了很多重要的努力。

总的来说,不管你是应用开发者、系统管理员、工具提供商或者安全专家,Java6都为你提供你想要的。本文描述了一些我用过的有趣新功能。

内核功能和改进

Java内核是Java的几个部分,包括语言和工具,这些是Java其他方面的基础,从用户界面API到服务类库。下面我细分小类描述Java内核以及Java6的改进。

开发效率

新的Java编译器API允许在Java应用程序中编译Java代码。在编译的时候,应用程序能够访问格式化的类库依赖信息、警告信息、错误信息以及编译中产生的其他消息(该功能已经被netbeans6.0集成进去,实现新的Javac

API,并籍此提高错误信息的提示)。尽管此项功能我不会经常用到,但是我已经发现它的新用处了。比如,用它为应用程序数据库迅速生成数据访问层。我写的代码生成并编译访问应用程序数据库的类,最终生成jar文件,这些jar文件产生、生成之后作为系统的一部分部署到Ant脚本中。在应用程序中生成并编译使得代码生成变得可以互动起来,我可以不断修改并反复生成这些类。

为使用Java的脚本功能,Java6支持了JSR223,JSR223提供脚本语言访问Java内部的框架,你可以在运行时定位并启动脚本引擎来运行你指定的脚本。另外,Web脚本框架还允许脚本在任何Servlet容器内生成Web页面。

对于调试来说,Java平台调试接口(JPDA)增强了检测死锁以及为被锁定监控对象产生堆栈跟踪的功能。此外,Java6添加了允许客户程序attach到一个正在运行的虚拟机进行诊断的功能。

应用程序管理

Java6增强了内存泄漏分析和检测,在java.lang.OutOfMemory异常中包含了所有跟踪栈的信息,并能当堆栈溢出时时产生致命错误的日志。另外,增添了一个新的虚拟机选项允许你当堆栈溢出时调用某段脚本。

JMX监控API的增强允许应用程序在MBean属性值(包括那些包含在复杂类型内的)超出临界值时发送事件消息。

对于Solaris10用户,Solaris的Hotspot

JVM为Solaris的DTrace系统调试工具提供钩子来追踪和显示虚拟机内部活动,比如垃圾收集器、类加载、线程、锁等等。参加JavaOne大会时,我观看此项功能的演示,深深被DTrace工具调试的深度所吸引。应用程序运行时,DTrace允许你在任何地方中断代码的运行,查看所有加载的库(不仅仅是Java类库,还包含系统类库),跟踪到Solaris内核直至硬件!Java提供的这个令人惊讶的新工具让系统调试成为可能。我现在还记得过去经常会遇到虚拟机中报出Solaris

Signal-8的错误,此新功能能帮我一探究竟。

Web服务

Java6包含了一些新的API来支持Web服务。XML数字签名API允许你对XML数据进行加密,从而安全地使用基于Java的Web服务,Java-XML

Web服务(JAX-WS)2.0

API更新了以前称作JAX-RPC的接口。Java-XML绑定(JAXB)2.0的增强包括XML

Schecma支持以及将类直接绑定到Schema上。最后,XML流API(STaX)提供了双向应用程序接口通过事件流来读写XML,包括跳过某些部分,只处理于文档的某些部分。

安全

Java6的安全包括GSS/Kerberos集成,LDAP认证的Java认证及授权服务(JAAS),允许Java应用程序通过多种协议请求安全证书的安全证书请求框架。

桌面功能和改进

很长一段时间内Java被认为是优秀的服务器段软件语言,而在桌面GUI应用方面被认为是次等公民。Sun的Java桌面开发小组一直致力于改变这种看法,将Java同本地操作系统更紧密的集成,结果在Java6中不仅提高了用户界面效率,还改进了Java

GUI应用程序的表现。

Java6的许多新的桌面功能基于JDIC项目,JDIC项目让Java应用程序可以访问本地操作系统的许多功能,比如浏览器、email编辑器、文件类型关联、系统托盘、应用程序启动以及打印等等。下面是Java6在桌面开发上的明显改进:

启动画面支持

启动画面告诉用户等待应用程序启动。Java6甚至提供了在虚拟机启动之前展现启动画面的支持。

Java基础类(JFC)以及Swing改进

Java6调整了Windows

API,使Swing既提高了运行速度,又保证了当前Windows版本的Windows外观。

增强了布局管理器,加入了自定义布局管理器以及其他简化界面组件的布局器。

极大的增强了Swing的drag-and-drop功能,使其更加灵活。

真双缓冲机制提供了快速平滑的界面切换。

系统托盘支持,在java.awt中增添了两个新类SystemTray和TrayIcon,允许你在Windows和Gnome

Linux系统托盘上添加图标、tool

tips、以及弹出菜单。系统托盘是所有应用程序共享的桌面领域,通常位于桌面的左下角,动作事件允许Java应用程序跟踪你放入托盘上图标鼠标点击事件。我发现这个新功能对我的服务器端程序也有用,比如和下文所提到的Desktop

API结合使用能容易地为应用程序管理员启动管理页面浏览器。不管是什么操作系统(Linux还是Windows),我不再需要记住应用程序管理端口或者URL,只需要点击图标,页面就出现了。

JTable的增强打印的支持。

Java2D的增强:增强了文本显示质量,特别是在液晶(LCD)显示器上,同本地桌面字体反走样设置集成确保了文本显示的一致性。

新的java.awt.Desktop的API:Java6新的Desktop包目的是使Java用户界面程序成为一等公民。使用该包,Java应用程序能够启动缺省的浏览器和电子邮件客户端,并且和普通桌面应用程序(比如OpenOffice)集成,能够打开、编辑并且打印特定类型的文件。Desktop包通过动作事件(Desktop.Action)来提供此项功能,让你能集成到你的应用系统中。

国际化

Java6为某些格式支持可插拔式支持,比如日期格式化、Unicode文本标准化以及资源bundle。

Java6有可能使Java桌面应用产生革命的变化,就像java

2曾经产生的服务器端革命一样。我们最好为这场风暴做好准备,为早期投入Java桌面市场得到的报偿摆好姿态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值