本文给出了升级到Java 2 Platform, Standard Edition (J2SE platform) 5.0的5大理由。每个理由都通过大量数据和参考资料来证实升级到5.0版本将大大降低开发与运行成本。
J2SE 5.0(代号Project Tiger)于2004年9月底发布。它是Java平台多年来的重大更新之一。Java社区为其新增功能欢呼不已,然而这些新增功能还无法全面地描述此版本的特色。与以往任何版本相比,这一平台更能满足高水平的测试要求,更适合于任务关键型产品的开发。
J2SE 5.0中的改进非常之多,本文选出最重要的前5条理由实非易事。我的选择如下:
1.1. 以前的应用程序可以直接在5.0上运行
“为了确保向后高度兼容,兼容测试次数是1.4版本中的两倍...”
??Calvin Austin Sun Microsystems
现有的应用程序无需重新设计或重新编译就可以直接在J2SE 5.0中使用。不仅现有应用程序的投资得到了保护,而且应用程序实际上已经使用新的Java运行时,并从中获益。
为了确保向后高度兼容,兼容测试次数是1.4版本中的两倍。这些兼容测试只是Java测试套件的一部分,该测试套件包含近20万个测试,其中接受测试的有许多著名的Java产品。
既然应用程序可以未加修改地运行,那么J2SE 5.0能为您提供什么呢?
1.1.1. 改进的性能
在J2SE 5.0中,客户机和服务器应用程序的性能均得到重大的改进,由于性能改进非常明显,我将它列为第2条理由,后面将详述。
1.1.2. 监控和易管理性
J2SE 5.0引入了先进的监控和易管理性框架,并将其内建在Java平台的虚拟机上(Java虚拟机或JVM)。您可以使用带有行业标准JMX和SNMP协议的现有管理控制台来监控JVM,甚至可以检测低内存情况。JDK发行版提供一个名为Jconsole的演示。您可以借助它来评估监控JVM所带来的好处,从而了解如何拓展自己的可用性指标。
1.1.3. 新的观感
Java平台已包含了一个插入式观感(Look-and-Feel)框架。新增的海洋风格的观感允许跨平台的应用程序能够在海洋和本机操作系统的观感之间进行切换,而无需重建或重新编译。
1.2. 速度更快
从下图可以看出,众多因素让J2SE 5.0的系统速度得到了显著提高。
1.2.1. 缩短启动时间
如果您最近几年一直没有启动过Java桌面应用程序,您可能会有惊喜的发现。引入了类数据共享(结合其他流线化选项)后,一些应用程序的启动时间缩短了近30%。
1.2.2. 卓越的64位性能
J2SE 5.0的64位JVM可以为AMD64/Opteron CPU和Suse Linux Enterprise Edition 8.0 SLES 提供记录结果。另外,32位JRE版本可以在同一64位操作系统下与现有的32位Web浏览器同时运行。
1.2.3. 性能改善
现在,JVM可在服务器级别的机器上自我配置和优化。服务器级别的机器是指具有两个或更多CPU,内存至少2GB的机器。基于服务器的性能改善消除了那些长时间运行的应用程序所需的内存和优化类。其结果是不用改动一行代码或提供任何运行时选项,就可以使应用序服务器基准程序提高80%的性能!
1.3. 缩短开发时间
集成开发环境(IDE)通过使用自动生成和向导来完成常规任务,从而减轻了开发人员的负担。J2SE 5.0新增的语言功能进一步流线化了开发过程,无论您是使用IDE还是在文本编辑器手工编码。
1.3.1. 减少开发人员编码数量
Java语言的许多改进都减少了开发人员必须编码的数量。下图针对与J2SE 1.4.2版本的比较,对这种减少进行了量化。举一个现实中的例子来说,一个开放源码应用服务器使用了超过2,000个迭代器。通过用新的循环改进功能来取代,编码量大大减少多达40,000个字符。对于开发人员来说,这相当于节省了两个小时的手工编码工作量(按每秒5个字符计算)。
图2:减少的编码工作量(编码行数更少)
J2SE 5.0平台增加了metadata,通过使用工具生成样板文件代码和配置信息,大大短少了开发时间。在JSR 181定义的SOA和Web服务的情况下,开发人员通过自动生成公共代码,有望减少50%的编码工作量。[注意:上图给出的例子表明,元数据JAX-RPC从209字符减少至95字符,使用generics的循环改进从139字符减少至100 字符,不使用generic的循环改进从121字符减至90字符,自动装箱从69字符减至56 字符]。
元数据将减少编写部署描述文件的工作量。曾有人建议EJB 3.0默认由应用程序自身生成配置信息,从而无需部署描述文件。
1.3.2. 增强的错误检验存储
用google搜索“ClassCastException”和“help”关键词将得到40,000条搜索结果。Sun 论坛上的专业搜索报告了3,444个开发者案例,他们都是请求帮助跟踪由于类转换异常问题而引起的无法解释的运行时故障。
在3,444个案例中,有470个涉及到pre-generics vector类。从投资回报的角度来看,在业务高峰期间任何运行时错误都可能损失公司站点10%的定单收入(若收入为30亿GBP,则损失3亿GBP)。这还未计入人力和商誉等其他因素。
随着编译时类型安全generic类型引入到Java平台,通过提醒开发人员在开发期间内是否存在类型匹配问题,将会降低运行时错误的风险。在论坛的470个案例中,Vector和其他JDK中的关键类库都已使用J2SE 5.0中的generics进行更新,从而避免重复出现那些无法解释的运行时问题。
1.4. 适用于任务关键型系统
5.0版本提供了增强的可伸缩性、质量与部署支持。
1.4.1. 可伸缩性
Java平台的设计令客户机和服务器均具有可伸缩性。5.0版本引入了一个功能强大的并发类库,令多线程编程比从前更简单同时功能也更强大。Java平台还支持64位以及多核心和超线程芯片技术。64位JVM允许应用程序使用4 GB以上的堆空间,还允许与其他64位应用程序集成。
1.4.2. 质量
J2SE 5.0平台已经在一组广泛的系统和操作系统变体上进行了深入的测试。测试中使用了许多流行的应用服务器和客户应用程序。最后一项测试标准??平均故障压力测试时间??以没有任何故障而完满结束。
1.4.3. 部署
在J2SE 5.0之前,很难确定JVM产品的事务吞吐量。新的分析工具和自动调优功能提供了更好的产品合理精简信息和配置。当应用程序投入使用后,可以看到通过这些功能缩减的范围令人惊叹。
如前在第1条理由中重点强调的,为了完成部署过程,JVM现在能够使用行业标准工具执行完整的远程监控。这就使得系统管理员无论在集群中还是在传统垂直伸缩的环境中,都可成功地管理JVM。所部署应用程序的健康状态和可利用性都能得到监控。
除了上面升级的4条技术理由之外,还有最后一条至关重要的理由。
1.5. 您选择了一家优秀的公司
J2SE 5.0的改进归功于Java社区。J2SE 5.0专家组包括以下Java领域的公司:Apache,Apple,BEA Systems,Borland,Cisco Systems,Fujitsu,Hewlett-Packard,IBM,Macromedia,Nokia,Oracle,SAP,SAS Institute,SavaJe Technologies,Sun Microsystems,John Zukowski,Osvaldo Doederlein和Juergen Kreileder。
共有16个由著名Java领域专家组成的工作组。它们组织了全世界160名专家协同工作,最终形成了J2SE 5.0 Java规范。该规范覆盖了从语言更新到并发类库再到类压缩文件API。有关更多的技术细节,请参阅J2SE 5.0 in a Nutshell。也可参考本页侧栏给出的参考书,诸如此类的参考书正在不断增加。
1.5.1. 有关J2SE 5.0的图书
l Java 5.0 Tiger: A Developer's Notebook. David Flanagan, Brett McLaughlin. O'Reilly & Associates, 2004.
l Java 2 v5.0 (Tiger) New Features. Herbert Schildt. McGraw-Hill Osborne Media, 2004.
l Beginning Java 2, JDK 5 Edition. Ivor Horton. Wiley, 2004.
l Core Java 2, Volume I, II (7th Ed.). Cay Horstmann, Gary Cornell. Pearson Prentice Hall, 2005.
l Just Java 2 (6th Ed.). Peter van der Linden. Prentice Hall, 2004.
l An Introduction to Programming and Object-Oriented Design Using Java 2, 2nd Ed. Jaime Niño, Frederick A. Hosch. Wiley 2005
l The Java Class Libraries Poster : Java 2 Platform Standard Edition 5.0 (8th Ed.). Patrick Chan, Rosanna Lee. Addison-Wesley Professional, 2005.
l Objects, Abstraction, Data Structures and Design Using Java Version 5.0. Elliot Koffman, Paul Wolfgang. Wiley, 2004.
1.6. 结束语
本文列出了我使用Java 2 Platform, Standard Edition (J2SE platform) 5.0的5个重要理由。(本文不涵盖客户机或服务器端的全部功能)。有关平台的所有资料,从规范到源代码,均可从SCSL和Java Research Library获得,它有助于您作出自己的决策。请通过社区论坛联系我们,让我们分享您对J2SE 5.0版本的看法。
下面的工具和应用程序利用了J2SE 5.0 增强功能,从而提高开发人员的效率。
l New J2SE 5.0 Enhanced tools and applications
l Java System Application Server 9
l NetBeans 4.0
l Eclipse 3.x
l Borland JBuilder 2005 - Wily Introscope