【JDK1.8】Java 8源碼閱讀匯總


一、前言

​    萬丈高樓平地起,相信要想學好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);
    }
}

三、目錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM