一、lambda表達式java
二、函數式接口jvm
三、StreamAPI函數
四、方法的引用與構造器的引用指針
五、接口中的默認方法與靜態方法接口
六、新時間日期API內存
七、其餘新特性get
簡介編譯器
java8的新特性it
一、速度更快(內存結構、垃圾回收、並行拓展)io
二、代碼更少(新增新的語法lambda表達式)
三、強大的streamApI
四、便於並行
五、最大化減小空指針異常,optional
lambda表達式
首先:lambda表達式是一個匿名函數,咱們能夠把lambda表達式理解爲一段能夠傳遞的代碼(將代碼像數據同樣傳遞)
例:Comparable<Integer> com=(x,y)->Integer.compare(x,y);
emplayees.stream().filter(e->e.getSalary()>=5000).foreach(System.out::println).limit(2);
lambda表達式的基礎語法,java8引入了一個新的操做->箭頭操做符將lambda表達式分爲倆部分
左側:lamdba表達式參數列表
右側:lambda表達式所需執行的功能即lambda表達體
語法格式一、無參數、無返回值。
()->功能,lambda體
語法格式二、有一個參數、無返回值
(x)->功能,lambda體
語法格式三、有一個參數沒有返回值,括號能夠不寫
x->功能lambda體
語法格式四、有倆個以上的參數、而且lambda有多條語句,有返回值
(x.y)->{lambda體}
語法格式五、若只有一條語句、return和{}可不寫
(x,y)->lambda體
語法格式6:lambda表達式的參數的數據類型能夠省略不寫,由於jvm編譯器經過上下文推斷出數據類型,即類型推斷
(Integer x,Integer y)->lambda體
lambda表達式須要函數式接口的支持
函數式接口:接口中只有一個抽象方法,可使用註解@FunctionInterface修飾,能夠檢查是不是函數式接口。