第18章:JDK8-17新特性

第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:增加、过时、删除API
  StringBuilder、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中的新特性都有什么?(银*数据)

  • 26
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿尔法波

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值