引用
易水寒蕭 的 java高級基礎備忘幽靈引用 -- 好強大的文章
http://www.javaeye.com/topic/401478
ThreadLocal -- 非常全面解釋了這個怪東東
http://www.javaeye.com/topic/103804
Concurrent -- 并發啊
http://www.javaeye.com/topic/363625
泛型 -- 泛型一籮筐
http://www.java3z.com/cwbwebhome/article/article5/tiger2.jsp
Comparator和Comparable -- 這個怪叔叔不算高級了,但是可以深入的了解一下它類似的設計模式 -- 策略模式。。如有興趣還要把它和枚舉放到一起
http://www.aygfsteel.com/fastunit/archive/2008/04/08/191533.html
ListIterator -- 怪東東,雖然不難,但我竟然沒有聽過,更別提用過了。看看JDK源碼中關于list的reverse實現
Java代碼
- public static void reverse(List<?> list) {
- int size = list.size();
- if (size < 18 || list instanceof RandomAccess) {
- for (int i=0, mid=size>>1, j=size-1; i<mid; i++, j--)
- swap(list, i, j);
- } else {
- ListIterator fwd = list.listIterator();
- ListIterator rev = list.listIterator(size);
- for (int i=0, mid=list.size()>>1; i<mid; i++) {
- Object tmp = fwd.next();
- fwd.set(rev.previous());
- rev.set(tmp);
- }
- }
- }
- public static void swap(List<?> list, int i, int j) {
- final List l = list;
- l.set(i, l.set(j, l.get(i)));
- }
寫道List和Set都有iterator()來取得其迭代器。對List來說,你也可以通過listIterator()取得其迭代器,兩種迭代器在有些時候是不能通用的,Iterator和ListIterator主要區別在以下方面:
1. ListIterator有add()方法,可以向List中添加對象,而Iterator不能
2. ListIterator和Iterator都有hasNext()和next()方法,可以實現順序向后遍歷,但是ListIterator有hasPrevious()和previous()方法,可以實現逆向(順序向前)遍歷。Iterator就不可以。
3. ListIterator可以定位當前的索引位置,nextIndex()和previousIndex()可以實現。Iterator沒有此功能。
4. 都可實現刪除對象,但是ListIterator可以實現對象的修改,set()方法可以實現。Iierator僅能遍歷,不能修改。
因為ListIterator的這些功能,可以實現對LinkedList等List數據結構的操作。其實,數組對象也可以用迭代器來實現。
你真的理解finally了嗎,看看這篇文章后,你或許不會這么自信了
http://zangxt.javaeye.com/blog/421508
Java類加載機制 -- 很好的博文