1. 程式人生 > >Java基礎入門之jdk1.8新特性

Java基礎入門之jdk1.8新特性

Lamda 表示式(目標型別)

  • 簡介

語法糖,也叫糖衣語法 指的是計算機中 新增某種語法 這種語法 ,能使程式設計師更加方便的使用語言開發程式,同時,增強了程式碼的可讀性
避免了出錯的機會,但是,這種語法對於語言的功能並且有增強 例如: 泛型 自動裝箱拆箱 增強for迴圈

  • 語法格式:

基本格式:(引數列表)->{方法體} () 形參列表 0個或者n個

  • 注意:

當一個介面中,只包含一個方法時,該介面是函式介面。只有是函式介面,才可以使用Lamda表示式替換 格式:()->{}
1.(引數列表)->表示式 省略花括號,return都不能有
2.形參列表的型別宣告名可省略
3.當形參列表是一個時,小括號可省略
4.如果表示式是單一表達式,可以省略Return

  • 基本應用

1.執行緒中的引用
這裡寫圖片描述
2. forEach方法在集合中的使用(Iterable)

list集合(jdk1.8後出現了自己的sort方法)

這裡寫圖片描述

3.Map集合
這裡寫圖片描述

  • 集合的排序
    這裡寫圖片描述

  • 陣列的排序

  • 特殊的雙冒號 ::方法引用

方法引用(method reference) 是Lamda的簡寫形式 呼叫一個已經存在的方法
當需要引用的方法涉及到其他型別的引數是,不可以使用
語法 : 左邊是容器 中間:: 右邊 呼叫的方法名
1.非靜態方法呼叫 物件名::方法名
這裡寫圖片描述
2.靜態方法呼叫 類名::方法名
3.構造方法呼叫 類名::new

區域性內部類:

final 修飾符可以省略

介面中支援靜態方法(static) 預設方法(default)

Jdk1.8允許介面有靜態修飾的方法 預設方法(沒有要求一定要重寫)若重寫default 方法,只能用public 修飾 修飾符不可以混合使用

Time包下的類

新增一些處理時間問題的專門類
LocalDate 不帶時間的日期 年月日
LocalTime 不帶日期的時間 時分秒
LocalDateTime 包含了日期與時間 不包含時區
ZoneDateTime 包含了日期與時間 不包含時區
這裡寫圖片描述

Stream 介面

和InputStream/OutputStream 沒有關係 和Iterator相似 Stream
表示能夠應用在一組元素上一次執行的操作序列 提供了很多Lamda表示式
這裡寫圖片描述