到了2003的年末,j2se1.5的beta版本就将发布了。这次发布和现在已经发布的j2se1.4的两个更新1.4.1和1.4.2都如2003年的javaone大会预期的发布。如果你没有参加这次大会,或者想重新回顾一下,那么下面就是这次大会的简要内容。
j2se 1.4.1 and 1.4.2 releases
当1.4.1(开发代号“hopper”)在2002年9月发布以及它的后续版本1.4.2(开发代号“mantis”)在2003年1月如期发布的时候,已经修复了超过4000个的bug,并且还在继续的修复中。
在j2se1.5的新特性中,将添加一些众人期待已久的功能,比如对itenium cpu的完全支持;swing的用户将看到两个全新的内建look & feels,一个是windows xp风格,一个gtk风格;同时启动时间上也有改进。
在服务器端的增强主要包含了两个新增的gc,一个并行标记清扫算法(concurrent mark and sweep algorithm)和类似年轻空间收集(parallel young space collector)。这两个新的gc能通过编译的参数来调用:-xx:+useconcmarksweepgc 和 -xx:+useparallelgc。
接下来,如何运用这些参数来调整系统的最佳性能就是我们在j2se1.5中需要学习和理解的了。
j2se 1.5 release
j2se 1.5(开发代号“tiger”)是java平台和语言上的一个重要修改,目前主要包括了15个jsr的请求和其他一些类似的更新。这次的release主要关注于几个关键的主题:主要是品质,监视和管理,性能和可扩展性,轻松的开发以及桌面客户端。
ease of development(轻松的开发)
你可能已经听到过了关于减轻开发难度而做的java语言上的修改。这次j2se根据jsr的要求实现以下几个jsr:jsr 201 包含了4个修改;jsr 175的核心是支持元数据(metadata),而jsr 14则规范了泛型。
元数据功能提供了声明式的开发,并且取代了一些工具的代码生成和维护功能。泛型提升了无需手动转型(manual casting)的代码复用,通常manual casting都会带来类型安全性上的一些问题。
另外的四个修改分别是:
用for循环来遍历容器(collection 类型),而不需要显式的声明容器的迭代器(iterator);
枚举类型提供了超越类似final static int的,增强的类型安全性;
当在泛型中使用基本数据类型(primitive types)的时候提供自动装箱(autoboxing)功能(原来的泛型中是不能使用基本类型的);
引入了静态常量(static constants)类改进显式的共享一个静态数据;
为了实现轻松的开发,除了语言上的修改之外,还有一些额外的东西,比如一些怀念printf函数的会发现它又回来了;一个新的并发工具(在jsr 166中提及)将使得多线程编程变的更加简单轻松。
scalability and performance(可扩展性和性能))
j2se 1.5版本将承诺改进可扩展性和性能,尤其是在启动时间和内存印记(memory footprint)上,将使得用户能以最快的速度发布一个应用程序。从jsr 163上将实现内建的性能工程(performance ergonomics)和个功能强劲的api profile工具。
monitoring and manageability(监视和管理))
监视和管理是tiger中的一个主要特性。那些在j2ee平台上使用jmx的开发者将非常开心的看到这样的特性能在j2se中实现。通过对jvm的监视,将允许对已发布的应用程序健康性的完全检查,包括对底层内存泄漏检测,错误处理甚至是api 堆栈跟踪(stack trace)的监视。
core xml support(核心的xml支持))
j2se 1.5的介绍被修改为xml的核心平台,表示java的核心api将包括了xml1.1,sax 2.0和dom level3。web service方面的api,jax-rpc,和jaxb将继续出现在web service的包中,在以后的新版本中这些api将被添加到核心api中去。
desktop client(桌面客户端))
最后一个重点的新特性是桌面客户端。这将带来几个内建的新的look & feels支持,并且增强了对皮肤(skins)的支持。除了启动速度和内存印记的增强,桌面开发者又多了几个值得期待的新特性。
unicode 3.1 support(对unicode 3.1的支持))
32位的代理字符(surrogate character)支持将会很谨慎的添加到新的版本中,所以1.5版本将仍然使用16位的char类型。
new io support(新的io支持))
新版本将提供对异步io的支持,并且支持在平台中适当的地方开拓更深入的使用这些api。
有了j2se 1.4.2和j2se1.5,java的开发者们将拥有一个激动人心的一年。
