首页 > 其他分享 >第18章_JDK8-17新特性(下)

第18章_JDK8-17新特性(下)

时间:2023-09-15 11:46:09浏览次数:26  
标签:实例 String 17 18 value Person switch JDK8 Optional

第18章_JDK8-17新特性(下)

6.新语法结构

6.1 Java的REPL工具:jShell命令

17

6.2异常处理之try-catch资源关闭

9

6.3局部变量类型推断

10 var

6.4 instanceof的模式匹配

16

if(obj instanceof String str){

6.5 switch表达式

14

int result = switch (day) {
case MONDAY ->1;
case TUESDAY,WEDNESDAY,THURSDAY ->2;case FRIDAY ->3;
case SATURDAY,SUNDAY ->4;
default -> throw new RuntimeException("what day is today?" + day);;I
system. out.println(result);

JDK12中的写法:还可以使用变量接收switch表达式的结果。

举例1:(在default中返回值5)
JDK13中的写法:引入了yield关键字,用于返回指定的数据,结束switch结构。
这意味着,switch表达式(返回值)应该使用yield,switch语句(不返回值)应该使用break。
和return的区别在于:return会直接跳出当前方法,而yield只会跳出当前switch块。

int result = switch (day) {
case MONDAY -> {
yield 1;

6.5文本块

15

String info = """
<html>
<body>
<p>HellT
尚硅谷</p>
</body>
</html>" " ";
system.out.println(info);

JDK14新特性:

:取消换行操作

\s∶表示一个空格

6.7 Record

16

public record Order1(int orderId , String orderName) {}
//-还可以在record声明的类中定义静态字段、静态方法、构造器或实例方法。
static String info ="我是一个人";
//-不能在record声明的类中定义实例字段;类不能声明为abstract;不能声明显式的父类等

6.8密封类

17

/ /Person是一个密封类,可以被指定的子类所继承。非指定的类不能继承Person类

public sealed class Person permits Student,Teacher ,Worker
    
    
//要求指定的子类必须是final.sealed. non-sealed三者之一1 usage
final class Student extends Person{}//Student类不能被继承了。

                                   
sealed class Teacher extends Person permits SeniorTeacher{}//Teacher类只能被指定的子类继承

non-sealed class Worker extends Person{}//Worker类在继承时,没有任何限制




7.API的变化

7.1 Optional类

JDK8的新特性

1.为什么需要Optional类?

为了避免代码中出现空指针异常。

2.如何实例化?
static Optional ofNullable(T value)':用来创建一个Optional实例, value可能是空,也可能非空

  public void test1(){
    String star="qqqqq";
    star=null;

        //使用Optional避免空指针的问题
        // 1.实例化:
        //ofNullable(T value)`:用来创建一个Optional实例,value可能是空,也可能非空
        Optional<String> star1 = Optional.ofNullable(star);

        //orElse(T other):如果Optional实例内部的value属性不为null,则返回value。如果value为null,
        // 则返回other.
        String otherStar="aaaaa";
        String finalStar = star1.orElse(otherStar);

        System.out.println(finalStar);
        //get():取出内部的value值。
        

    }

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)
    

标签:实例,String,17,18,value,Person,switch,JDK8,Optional
From: https://www.cnblogs.com/xin-zhi-suo-xiang/p/17704632.html

相关文章

  • EasyGBS是一款基于国标GB28181协议的视频融合管理平台,它可以实现视频资源的集中管理和
    EasyGBS国标视频融合云平台是一款基于端-边-云一体化架构的视频融合+AI智能分析网关平台,EasyGBS平台支持视频汇聚、融合管理,能兼容多类型设备、多协议接入,可提供的视频功能包括:视频监控、无插件直播录像、云存储、检索回放、智能告警、平台级联、GIS定位监测等。EasyGBS具备强大的......
  • 618京东到家APP-门详页反爬实战
    一、背景与系统安全需求分析1.系统的重要性上图所示是接口所属位置、对电商平台或在线商店而言,分类查商品都是很重要的,通过为用户提供清晰的商品分类,帮助他们快速找到所需产品,节省浏览时间,提升购物效率,是购物结算产生GMV的核心环节。那么电商平台为什么都很看重商品信息的爬......
  • 洛谷 P9518 queue
    一眼模拟。需要维护的东西可以根据操作求得:start:正在玩游戏的\(1\)或\(2\)个人;arrive:当前在排队但没玩游戏的队列、每个人是否在排队、游玩;leave:每个人是否在排队、游玩。如何维护正在玩游戏的人:我们使用\(p_1\)、\(p_2\)两变量存储,优先保证\(p_1\)有值,当\(p_1......
  • 9.11CF1819 题解
    9.11CF1819题解A.ConstructiveProblem简单题,上链接:链接B.TheButcher题意有一张 \(h\timesw\) 的纸片,现在对这张纸片进行 \(n−1\) 次裁剪。每次裁剪后会将其中一半收归(即这一半不会再被裁剪)。保证纸片不会被旋转。告诉你最终裁剪后的 \(n\) 张纸片长宽,问初始......
  • iOS 17新特性以及适配细节汇总
    1、UIScrollView增加了属性allowsKeyboardScrolling表示是否根据连接的物理键盘的方向键而滚动。importUIKitclassViewController:UIViewController{lazyvarscrollView:UIScrollView={letscrollView=UIScrollView(frame:CGRect(x:0,......
  • Linux系统 下载并配置JDK8
    访问Oracle的官网:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html  选择:Linuxx64CompressedArchive(对应64位操作系统)。     3.下载时需要登录Oracle账户,没有可以注册一个 注册不了的可以从百度网盘下载:链接:https://pan......
  • 洛谷OJ [P5018 对称二叉树] (深度优先搜索、二叉树、思维)
    P5018[NOIP2018普及组]对称二叉树题意:给定一棵树,树上的每个结点有一个权值,问你这棵树的子树中节点数最多的对称二叉树的节点数是多少?对称二叉树的定义如下:对于树中的每一个结点,要么没有子节点,要么既有左儿子,又有右节点,且对称位置的结点点权相等。输入格式:第一行......
  • SpringBoot 3.0最低版本要求的JDK 17,这几个新特性不能不知道
    最近,有很多人在传说SpringBoot要出3.0的版本了,并且宣布不再支持Java8,最低要求是Java17了。其实,早在2021年9月份,关于SpringFramework6.0的消息出来的时候,Spring官方就已经明确了不会向下兼容,最低的JDK版本是JDK17。2022年,SpringFramework6.0和SpringBoot3.0都......
  • VMware Ubuntu18.04找不到网卡ens33问题解决
     查询网卡状态[root@localhost~]# nmcli devicestatusDEVICE   TYPE     STATE      CONNECTIONens33    ethernet unmanaged  --lo        loopback unmanaged  --上面状态提示未接管 开启网络[root@localhost~]#nmcli......
  • 中风失语 18 年,AI + 脑机接口帮她「意念发声」
    人与人交往中,说话表达是最基本的能力和方式,可世界上有很多人,却「有口难言」。「失语症」中,由中风引起的最为常见。他们的声音无法传达,他们的诉求不为人所知,他们遭受着社交孤立,他们的沉默震耳欲聋。每一个因中风而失语之人,无不渴望恢复完全、自然的交流能力,尽管目前全世界范围内......