java1.8的特性,java1.8新特性
1.新增概念:stream、lambda、函數式編程
2.函數式接口(@functionalInterface):只包含一個方法的接口,但可以有默認(default)方法
lambda的本質是實現了函數式接口唯一方法的實現類,只有一個方法才不需要指定
3.lambda無法單獨出現,需要一個函數式接口來盛放
4.forEach實現了內部迭代
外部迭代:顯式地進行迭代操作,集合元素的訪問由外部控制
5.幾個常用迭代的時間:
for(String s : list)????? ? : 50134
for(int i = 0; i < list.size(); i++)????? ? : 74608
for(Iterator iterator = list.iterator; iterator.hasnext();)????? ? : 476464
list.forEach(System.out::println)????? ? : 1357154
list.forEach(e -> System.out.println(e))????? ? : 87608685
6.java 1.5:泛型、注解、concurrent并發包
java 1.8:lambda表達式、stream
7.lambda表達式是語法糖,為了簡化語句、配合stream使用,取代冗長的內部類定義
語法糖:編譯器推斷出此處需要參數列表 -> 函數體
8.new Thread( new Runnable() {
public void run() {
System.out.println("truth");
}
}).start();
Thread需要一個實現run方法的類 ---> 取消 new Runnable ---> 取消 public void run ---> () -> { }
9.Predicate:謂詞
java8添加了util.function包,里面包含多個新的@functionalInterface函數式接口,所謂匿名內部類就是其一個實現
10.匿名內部類:
1.方法引用:有了實現,直接引用方法
但是有了類似Runnable()的實現,new Thread(new Runnable)和new Thread(new Runnable::run)有區別嗎。。。好像運行時間會縮短
方法引用不能是一個單獨的方法,必須是 “實現類::方法名“
2.lambda:函數式接口只有一個方法,編譯器自動識別補全代碼
11.lambda表達式又被稱為閉包、匿名函數
12.map:將集合類進行轉換,一一映射
reduce:將所有值合并為一個,折疊操作;max、min、sum等都是
13.申明變量:父類 = 子類實現
因為必須能夠使用所申明變量的所有方法
14.lambda表達式必須使用外界的final類型變量,因為內部類使用外部變量時必須為final類型
可見,lambda是內部類具體方法的實現
總結
以上是生活随笔為你收集整理的java1.8的特性,java1.8新特性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php输出股票价格代码,实时抓取YAHO
- 下一篇: java的matcher方法,Match