//OriginalClass.java
//Compile in current directory
//Copy source to modified directory,change message and recompile
public class OriginalClass {
public void message() {
System.out.println("OriginalClass");
}
}
改进的诊断能力
如果没有控制台窗口可用,生成的 Stack 跟踪就很笨拙。两个新的 API —— getStackTrace 和 Thread.getAllStackTraces —— 以程序的方式提供该信息。
StackTraceElement e[]=Thread.currentThread().getStackTrace();
for (int i=0; i
Hotspot JVM 包含一个致命的错误处理程序(error hander),如果 JVM 异常中断,它可以运行用户提供的脚本。使用 Hotspot JVM 可服务性代理连接器,调试工具也可以连接到一个挂起的 JVM 或者核心文件。
-XX:OnError="command"
-XX:OnError="pmap %p"
-XX:OnError="gdb %p"
optional %p used as process id
桌面客户端
Java 桌面客户端保留有 Java 平台的一个关键组件,并且这一点成了 J2SE 1.5 中许多改进的焦点。
这个 Beta 版本包含启动时间和内存占用方面的一些早期改进。该版本不仅更快,并且 Swing 工具集采用了一个暂新的叫做 Ocean 的主题。
通过建立 J2SE 1.4.2 中的更新,GTK 和 Windows XP 外观方面有了更进一步的改进。
Windows XP Click to Enlarge
Linux/Redhat Click to Enlarge
具有最新 OpenGL 驱动程序并且选择了图形卡的 Linux 和 Solaris 用户,可以使用下面的运行时属性从 Java2D 获得本机硬件加速:
java -Dsun.java2d.opengl=true -jar Java2D.
Linux 版本也具有快速的 X11 Toolkit,叫做 XAWT,默认情况下是启用的。如果您需要与 motif 版本进行比较,可以使用下面的系统属性:
java -Dawt.toolkit=sun.awt.motif.MToolkit -jar Notepad.jar
(X11 Toolkit 叫做 sun.awt.X11.XToolkit)
X11 Toolkit 也使用 XDnD 协议,所以您可以在 Java 和其他应用(比如 StarOffice 或 Mozilla)之间拖放简单的组件。
其他特性
核心 XML 支持
J2SE 1.5 引入了核心 XML 平台的几个修订,包括 XML 1.1 和 Namespace、XML Schema、SAX 2.0.1、XSLT 和快速 XLSTC 编译器,以及最后的 DOM 第 3 层支持。
除了支持核心 XML 之外,未来版本的 Java Web Services Developer Pack 将交付最新的 Web 服务标准:JAX-RPC & SAAJ (WSDL/SOAP)、JAXB、XML Encryption and Digital Signature,以及用于注册的 JAXR。
辅助字符支持
32 位的辅助字符支持作为传输到 Unicode 4.0 支持的一部分,已经慎重地添加到该平台。辅助字符被编码为一对特殊的 UTF16 值,以生成一个不同的字符或者码点(codepoint)。一个代理对(surrogate pair)是一个高 UTF16 值和后面的一个低 UTF16 值的组合。这些高值和低值来自一个特殊范围的 UTF16 值。
一般来说,当使用 String 或者字符序列时,核心 API 库将透明地为您处理新的辅助字符。但是因为 Java "char" 仍然保留为 16 位,所以非常少的一些使用 char 作为参数的方法,现在有了足够的可以接受 int 值的方法,其中 int 值可以代表新的更大的值。特别是 Character 类,具有附加的方法来检索当前的字符和接下来的字符,以便检索辅助的码点值,如下所示:
String u="\uD840\uDC08";
System.out.println(u+"+ "+u.length());
System.out.println(Character.isHighSurrogate(u.charAt(0)));
System.out.println((int)u.charAt(1));
System.out.println((int)u.codePointAt(0));
更多信息请参见 Character 中的 Unicode
部分。
JDBC RowSets
JDBC 行集支持有两个主要的更新。CachedRowSet 包含从数据库检索的行的内存中的集合。但是它们也是不连接的,这意味着以后更新可以与数据库重新同步。
另一个组件是 WebRowSet,它使用数据库行通过 XML 来传输数据。