很高兴花周五晚上2个小时的时间来阅读这样一本实用的书 -- 《Java 5.0 Tiger》
很多我面试过的朋友,工作经验两年以上,到今天都只用过JDK1.4,中WebSphere/WebLogic的毒不浅
智,日日知新也
一、新的类库
1,
java.util.Arrays
提供对数组的一大堆实用的static方法:
binarySearch([], key): 使用二分搜索法来在指定数组中搜索指定值,返回搜索值的索引
toString([]): 打印数组内容
deepToString([]): 深层打印数组内容,适用于多维数组
equals([], []): 数组比较
deepEquals([], []): 深层比较,适用于多维数组
fill([], val): 给数组的每个元素赋值
sort([]): 对数组升序排序
2,
java.util.Queue<E>
FIFO(先进先出)的必需品:
offer(E): 进
poll(): 出
Queue是接口,Queue q = new LinkedList();
3,
java.util.Comparator<T>
结合
java.util.Priority<E>构造自己排序的Queue:
compare(t1, t2): 实现自己的compare方法来排序
4, Override返回类型
Tiger让方法覆盖时连返回类型也可以Override:
public class Test1 {
protected Test1 returnSomething() {
return new Test1();
}
}
public class Test2 extends Test1 {
@Override
protected Test2 returnSomething() {
return new Test2();
}
public static void main(String... args) {
System.out.println(new Test2().returnSomething().getClass().getName());
}
}
Test2运行结果为: Test2
返回类型可以为superclass返回类型的extension
5, Unicode
Tiger前的Java版本支持Unicode 3.0,所有Unicode字符容于16位(一个char)
而Tiger改为支持Unicode4.0,它定义了不能容于16位的字符,这些字符不能容于一个char
这时我们用int类型的codePoint来表示该字符
codepoint是一个代表特定字符的数字,如0x3C0是π这个符号的codepoint
我们需要关注
Character类的新方法
6,
StringBuilder
不担心thread安全的情况下使用StringBuilder代替StringBuffer是最好的方式
引用
Where possible, it is recommended that this class be used in preference to StringBuffer as it will be faster under most implementations.