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支持)