第18章:隨堂復習與企業真題(JDK8-17新特性)
一、隨堂復習
1. JDK新特性的概述
-
幾個重要的版本
- jdk 5.0 / jdk 8.0 :里程碑式的版本
- jdk9.0 開始每6個月發布一個新的版本
- LTS : jdk8 、 jdk 11 、 jdk 17
-
如何學習新特性
> 角度1:新的語法規則 (多關注)自動裝箱、自動拆箱、注解、enum、Lambda表達式、方法引用、switch表達式、try-catch變化、record等> 角度2:增加、過時、刪除APIStringBuilder、ArrayList、新的日期時間的API、Optional等> 角度3:底層的優化、JVM參數的調整、GC的變化、內存結構(永久代--->元空間)
2. JDK8:lambda表達式
2.1 什么情況下可以使用lambda表達式
- 在給函數式接口提供實例時,都可以考慮使用lambda表達式。
- 基本語法的使用(重要)
2.2 函數式接口
-
常見的函數式接口。Comparator \ Runnable \ java.util.function下定義的豐富的函數式接口
消費型接口:Consumer<T> void accept(T t) 供給型接口:Supplier<T> T get() 函數型接口:Function<T,R> R apply(T t) 判斷型接口:Predicate<T> boolean test(T t)
2.3 方法引用、構造器引用、數組引用
-
方法引用、構造器引用、數組引用:看做是lambda表達式的進一步刻畫、表達。
-
(掌握)方法引用、構造器引用、數組引用的使用場景。
3. JDK8:Stream API的使用
- Stream關注于內存中的多個數據的運算。
- 使用步驟:① Stream 的實例化 ② 一系列的中間操作 ③ 終止操作
4. JDK8之后的新特性:語法層面
- jShell工具
- try-catch結構的變化。try(…){ }
- 局部變量的類型推斷:var
- instanceof的模式匹配
- switch表達式、switch的模式匹配
- 文本塊的使用:“”“文本塊”“”
- 新的引用數據類型:record (記錄)
- 密封類:sealed class
5. JDK8之后的新特性:其它
- Optional類的使用
- 其他:了解
二、企業真題
2.1 JDK8新特性
1. 談談java8新特性(京*旗下、時代*宇,信必*、招*信諾,中*外包,金*軟件、阿**巴)
類似問題
> JDK1.8相較于JDK1.7有什么不一樣?(惠*)
> JDK1.8的新特性有哪些?Stream API + Lambda表達式,還有嗎?(久*國際物流)
- lambda表達式、Stream API
- jdk7的對比:元空間、HashMap、新的日期時間API、接口變化等。
2. JDK1.8在數據結構上發生了哪些變化 ?(銀*數據)
- 使用元空間替代永久代。 (方法區:jvm規范中提到的結構。
- HotSpot來講,jdk7:方法區的落地體現:永久代。 jdk8:方法區的落地體現:元空間。
- HashMap底層結構
3. 你說的了解 Java的新特性 ,你說說JDK8改進的地方?(銀*科技)
略
4. JDK1.8用的是哪個垃圾回收器?(O**O)
Parallel GC --> jdk9:默認使用G1GC --> ZGC (低延遲)
2.2 Lambda表達式
1. Lambda表達式有了解嗎,說說如何使用的(O**O)
類似問題:
> Lambda的理解(國*)
略
2. 什么是函數式接口?有幾種函數式接口(阿**巴)
略。
java.util.function包下定義了豐富的好函數式接口。有4類基礎的函數式接口:
消費型接口:Consumer void accept(T t)
供給型接口:Supplier T get()
函數型接口:Function<T,R> R apply(T t)
判斷型接口:Predicate boolean test(T t)
2.3 Stream API
1. 創建Stream的方式(阿**巴)
三種。
2. 你講講stream表達式是咋用的,干啥的?(中*國際,上海**網絡)
> Stream API 關注的是多個數據的計算(排序、查找、過濾、映射、遍歷等),面向CPU的。集合關注的數據的存儲,面向內存的。
> Stream API 之于集合,類似于SQL之于數據表的查詢。
3. 集合用Stream流怎么實現過濾?(潤*軟件)
filter(Predicate predicate)
4. 用Stream怎么選出List里想要的數據?(惠*)
略
2.4 其它版本新特性
1. 說說JDK15、JDK16、JDK17中的新特性都有什么?(銀*數據)
略