一、前言
萬丈高樓平地起,相信要想學好java,僅僅掌握基礎的語法是遠遠不夠的,從今天起,筆者將和園友們一起閱讀jdk1.8的源碼,並將閱讀重點放在常見的諸如collection集合以及concurrent並發兩塊,另外筆者自己也是摸着石頭過河,如果有描述不當的地方,希望園友們能夠不吝指出,希望能夠和大家共同進步!
二、jdk1.8新特性簡述
相較於之前的jdk版本,jdk1.8加入了很多新特性,諸如Lambda表達式,函數式接口,時間的處理類等新特性,值得一提的是可以在Interface接口中加入default關鍵字開頭的方法,里面可以寫實現。這一改動算是為了增加新特性的一種妥協,可以試想一下如果不加入這種改變,在Map、Collection等重要接口中加入其它方法,那么其龐大的實現類(不論是jdk里的,還是我們自己實現的)都需要重寫實現代碼,那么將是災難性的o(TωT)o 。下面簡單的展示一下新語法,后面分析的時候也會提到(大概吧( ̄. ̄))
public class NewFeaturesTest {
/**
* output:
* 所有的數: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
* 偶數: 0, 2, 4, 6, 8,
* 大於5的數: 6, 7, 8, 9,
*/
public static void main(String args[]){
List<Integer> list = Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
System.out.print("所有的數: ");
eval(list, n -> true);
System.out.print("\n偶數: ");
eval(list, n-> n%2 == 0 );
System.out.print("\n大於5的數: ");
eval(list, n -> n > 5 );
}
private static void eval(List<Integer> list, Predicate<Integer> predicate) {
list.stream().filter( n -> predicate.test(n)).forEach(System.out::println);
}
}
三、目錄
- 【JDK1.8】JDK1.8集合源碼閱讀——總章
- 【JDK1.8】JDK1.8集合源碼閱讀——HashMap
- 【JDK1.8】JDK1.8集合源碼閱讀——LinkedHashMap
- 【JDK1.8】JDK1.8集合源碼閱讀——TreeMap(一)
- 【JDK1.8】JDK1.8集合源碼閱讀——TreeMap(二)
- 【JDK1.8】JDK1.8集合源碼閱讀——IdentityHashMap
- 【JDK1.8】JDK1.8集合源碼閱讀——ArrayList
- 【JDK1.8】JDK1.8集合源碼閱讀——LinkedList
- 【JDK1.8】JDK1.8集合源碼閱讀——Set匯總
- 【JDK1.8】JUC.Lock綜述
- 【JDK1.8】JUC——LockSupport
- 【JDK1.8】JUC——AbstractQueuedSynchronizer
- 持續更新中….