`
isiqi
  • 浏览: 16698913 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论
阅读更多
 本文是一篇来自于一名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应用程序的行为。

  Java SE 6的许多新的桌面特征都是基于JDesktop集成组件(JDIC)工程。JDIC工程使得Java应用程序能够存取本机的OS桌面中一些可用特征,例如浏览器、电子邮件编辑器、文件类型关联程序、系统托盘、应用程序启动与打印等。下列是Java SE 6中一些杰出的在桌面方面的改进:

  · Splash屏幕支持-Splash屏幕能够通知一个用户,当他在等待时一个应用程序正在启动。Java SE 6增加了对Splash屏幕的支持-即使在JVM启动后也可以显示Splash屏幕。

  · Java基础类(JFC)和Swing的改进:

  * Java SE 6利用了Windows API来提高性能以确保在当前以及未来的Windows版本中都能具有Windows外观感觉。

  * 在设计管理改进方面,包括可定制的设计管理器和简化GUI组件设计的其它一些改进。

  * 对Swing的拖放方面进行了大幅度改进,现在可以对这一功能进行定制。

  * 真实的双缓冲机制提供了快速平滑的图形过渡效果。

  · 系统托盘支持。Java SE 6中新增两个新类,SystemTray和TrayIcon,包含在java.awt包中,它们允许把图标,工具提示框和弹出菜单添加到Windows或Gnome Linux系统托盘。系统托盘是由所有应用程序共享的桌面区域,通常位于这个区域的右下方。行为(Action)和事件(Event)允许Java应用程序对放到托盘上的项跟踪鼠标点击并响应这些点击。我发现这个特性对我的服务器端应用程序也非常有用。例如,通过与桌面API(见下面)一起使用,现在我可以把一个图标添加到系统托盘上来容易地实现为应用程序的管理HTML页面启动一个浏览器。无论什么样的OS(Linux或Windows),我不再需要记住应用程序的管理端口或URL,只需要简单地点击图标,则该页面就会出现。

  · 针对JTable的改进的打印支持

  · Java 2D改进-在文本显示质量方面作了改进,特别是在LCD监视器方面。与主机桌面的字体反走样设置的集成可以确保连续的文本生成。

  · 新的java.awt.Desktop API-新的Java SE 6桌面包主要目的是使得Java UI应用程序成为"第一流的公民"。通过使用这个包,Java应用程序能够启动缺省的浏览器和电子邮件客户端,并且与普通桌面应用程序集成(例如OpenOffice)来打开、编辑和打印特定类型的文件。该桌面包通过能够集成到你的应用程序中的行动事件(Desktop.Action)提供了这种能力。

  · 国际化支持-Java SE 6支持针对本地化特征的"插件化",例如日期格式化,Unicode文本规范化以及资源绑定等。

  四、 一场新的Java桌面革命

  实际上,本文也只是简单地介绍了Java SE 6这个即将发行的重要的Java发行的beta版本中所作的一些改进。这些改进涉及到Java标准版本的许多方面,包括那些与Java企业版本非常密切的方面。

  就象Java 2对服务器所产生的影响一样,Java SE 6将会对桌面开发领域产生革命性的影响。如今,已经到了为这场新风暴作好准备并把你自己投入到其中的时候了。

分享到:
评论

相关推荐

    javase6新特性

    Java SE 6,代号 Mustang,是Java发展过程中的一个重要版本,它在性能上有所提升,并引入了一系列新特性,尤其是在API库方面。其中,Instrumentation是Java SE 6的一个亮点,它允许开发者创建独立于应用程序的代理...

    javase分析图介绍

    在“javase分析图介绍”这个主题中,我们可以深入探讨JavaSE中的各种重要概念、结构和工具,通过分析图来帮助理解和学习。 首先,JavaSE包含了基础的类库,如集合框架、I/O流、多线程、网络编程等模块。集合框架是...

    0-JavaSE课程介绍

    ### JavaSE课程知识点详解 ...通过本课程的学习,学员能够系统地掌握Java编程的基本原理和高级特性,并具备开发桌面应用程序的能力。同时,对于那些希望从事企业级应用开发的同学来说,这门课程更是不可或缺的第一步。

    jdk7.0新特性

    jdk7.0新特性 jdk7.0新特性中最重要的特点之一是对集合的支持。该特性使得创建List、Set、Map等集合类型变得更加简洁。例如,创建一个List类型的集合,可以使用以下语句:List<String> list = ["item"];这样简洁的...

    JavaSE_JavaSE学习资料_

    总的来说,这个JavaSE学习资料包将引导开发者全面地学习Java语言的核心特性,掌握基本编程技巧,理解并运用集合框架、IO流等关键概念,从而具备开发高效、稳定的Java应用程序的能力。随着对JavaSE的深入学习,开发者...

    传智播客javase全套笔记

    这套笔记包含了JavaSE(Java Standard Edition)的所有重要知识点,从基础语法到高级特性,为初学者提供了一个系统化的学习路径。 在JavaSE的学习中,首先会接触到的是基础语法,包括变量、数据类型、运算符、流程...

    JavaSE项目最终总结

    在这个“JavaSE项目最终总结”中,我们将深入探讨JavaSE的重要概念、核心特性以及如何将它们应用于实际项目。 首先,JavaSE包括了Java的基础语法、类库和API,这些都是编写Java程序的基石。例如,了解基本数据类型...

    javaSEjavaSE

    泛型是JavaSE 5.0引入的新特性,增强了类型安全,减少了类型转换的麻烦。 总的来说,JavaSE是Java编程的基础,无论你是想开发桌面应用、Web应用还是移动应用,掌握JavaSE的知识都是至关重要的。通过深入学习JavaSE...

    javase基础知识介绍.pdf

    J2SE6.0的发布带来了许多新特性,提升了Java的性能和易用性。例如,它改进了垃圾回收机制,优化了内存管理,使得程序运行更高效。此外,还增加了对动态语言的支持,如JavaScript和Ruby,使得Java平台能更好地与其他...

    javase-3.3.0.zip

    6. 兼容性:虽然描述中没有明确提及,但需要注意的是,JavaSE 3.3.0.jar可能需要Java 8或更高版本的JRE支持,因为它可能使用了Java新版本的一些特性。 7. 图像参数调整:除了基本的写入功能,可能还存在其他方法或...

    JAVASE JDK最新版本 CHM英文版

    对于初学者,通过阅读JAVASE JDK9 API.chm文档,可以系统学习Java SE的基础知识,深入了解新特性的应用场景。对于经验丰富的开发者,这个文档则是一个不可或缺的参考资料,能够帮助他们在解决问题时快速定位API功能...

    JavaSE李学重讲义

    JavaSE还包含反射和动态代理等高级特性。反射允许我们在运行时检查类的信息,甚至修改其行为。动态代理则可以在运行时创建接口的实现类,常用于AOP(面向切面编程)。 最后,JavaSE的API非常丰富,如 Swing 和 AWT ...

    JavaSE1.8.rar

    这个版本的发布对Java开发者来说意义重大,因为它引入了一系列新特性和改进,旨在提升开发效率和程序性能。以下是JavaSE 1.8中的一些核心知识点: 1. **Lambda表达式**:这是Java 8最大的亮点之一,它引入了函数式...

    JavaSE基础教程(新手必读)

    3. **继承**:一个类可以继承另一个类的特性,实现代码复用。 4. **多态**:同一种行为在不同对象上有不同的表现形式,如重写(Override)和重载(Overload)。 三、异常处理 Java中的异常处理机制使得程序在遇到...

    javaSE1.8.zip

    总的来说,"javaSE1.8.zip"提供的JDK 1.8对于Java开发者来说是一份宝贵的资源,它的许多新特性极大地推动了Java语言的发展,同时也让开发工作变得更加高效。无论是初学者还是经验丰富的开发者,都应该熟悉并掌握Java...

    JavaSE课件JavaSE课件

    泛型是Java 5引入的新特性,增强了代码的类型安全性,减少了类型转换的麻烦。 九、枚举与注解 枚举是Java中的一种特殊类,用于定义固定的常量集合;注解是一种元数据,可以为编译器和JVM提供额外信息,用于代码的自...

    JavaSE6新特性:HTTP增强

    火龙果软件工程技术中心 本文内容包括:概述NTLM认证轻量级HTTP服务器Cookie管理特性其他新特性结语参考资料2006年底,Sun公司发布了JavaStandardEdition6(JavaSE6)的最终正式版,代号Mustang(野马)。...

Global site tag (gtag.js) - Google Analytics