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