1、record快速定义类

@Test
public void testRecord() { /**
* JDK16新特性
*
* @param start
* @param end
*/
record qiu(int start, int end) {
int sum() {
return qiu.this.start + qiu.this.end;
}
}
qiu q1 = new qiu(1, 2);
System.out.println("q1 = " + q1);
qiu q2 = new qiu(3, 4);
System.out.println("q2 = " + q2);
System.out.println(q1.equals(q2));
// 调用方法
System.out.println("q1.sum() = " + q1.sum());
System.out.println("q2.sum() = " + q2.sum());
}

2、字符串的新方法

    /**
* isBlank():如果字符串为空或字符串仅包含空格(包括制表符),则返回 true。注意与isEmpty() 不同,isEmpty()仅在长度为 0 时返回 true。
* lines():将字符串拆分为字符串流,每个字符串包含一行。
* strip() : 分别从开头和结尾;
* stripLeading()/stripTrailing()仅开始和仅结束删除空格。
* repeat(int times):返回一个字符串,该字符串采用原始字符串并按指定的次数重复该字符串。
* readString():允许从文件路径直接读取到字符串。
* writeString(Path path):将字符串直接写入指定路径处的文件。
* indent(int level):缩进字符串的指定量。负值只会影响前导空格。
* transform(Function f):将给定的 lambda 应用于字符串。
*/
@SneakyThrows
@Test
public void testNewStringMethod() {
String str1 = "";
System.out.println(str1.isBlank()); // true
System.out.println(str1.isEmpty()); // true
str1 = " ";
System.out.println(str1.isBlank()); // true
System.out.println(str1.isEmpty()); // false
str1 = "\r";
System.out.println(str1.isBlank()); // true
System.out.println(str1.isEmpty()); // false
str1 = "\r\n";
System.out.println(str1.isBlank()); // true
System.out.println(str1.isEmpty()); // false System.out.println("============================================================"); String str2 = "hello qiu \r\n qiu 我的最爱 JDK17 \n\r!\r";
Stream<String> stream = str2.lines();
stream.forEach(System.out::println); System.out.println("============================================================"); String strip = str2.strip();
System.out.println("strip = " + strip);
System.out.println("str2.stripTrailing() = " + str2.stripTrailing());
System.out.println("str2.stripIndent() = " + str2.stripIndent());
System.out.println("str2.stripLeading() = " + str2.stripLeading()); System.out.println("============================================================"); String str3 = "qiu";
String repeat = str3.repeat(3);
System.out.println("repeat = " + repeat); System.out.println("============================================================");
String path = "F:\\a.txt";
Path of = Path.of(path);
String string = Files.readString(of);
System.out.println("readString = " + string); List<String> asList = Arrays.asList("1", "2", "3", "4", "5");
// Files.write(Paths.get("./test"),list, StandardOpenOption.APPEND);
Files.write(Paths.get("F:\\a.txt"), asList, StandardCharsets.UTF_8, StandardOpenOption.APPEND); Path writeString = Files.writeString(of, "writeString", StandardOpenOption.APPEND);
System.out.println("writeString = " + writeString);
System.out.println("============================================================"); String path3 = "F:\\a.txt";
System.out.println(path3.indent(2));
}

3、switch优雅的写法

// 以前的写法
String result = "";
int caseNum = 4;
switch (caseNum){
case 1 :
result = "zs";
break;
case 2 :
result = "ls";
break;
case 3 :
result = "ww";
break;
default:
result = "qiuqiu";
}
System.out.println("result = " + result); // 现在的写法
result = switch (caseNum) {
case 1 -> "张三";
case 2 -> "李四";
case 3 -> "王五";
default -> "秋秋";
};
System.out.println("result = " + result);

记录一些JDK的新特性~持续更新的更多相关文章

  1. php新特性--持续更新

    命名空间 在其他语言中不算新鲜事,但php是5.3.0中引入,具体定义就不复述了,其主要作用是 封装和组织相关php类 .命名空间被引入之前php主要是通过Zend方式组织代码,这种方式带来的问题是类 ...

  2. Java Stream 流(JDK 8 新特性)

    什么是 Steam Java 8 中新增了 Stream(流)来简化集合类的使用,Stream 本质上是个接口,接口中定义了很多对 Stream 对象的操作. 我们知道,Java 中 List 和 S ...

  3. Java lambda 表达式详解(JDK 8 新特性)

    什么是 lambda 表达式 lambda 表达式(拉姆达表达式)是 JAVA 8 中提供的一种新的特性,它使 Java 也能进行简单的"函数式编程". lambda 表达式的本质 ...

  4. JDK 8 新特性

    JDK 8, Oracle's implementation of Java SE 8. JDK 8 是 Oracle 对 Java SE 8 规范的实现. 本文分析 JDK 8 引入的新特性. 官方 ...

  5. JDK的新特性

    JDK5新特性 a,自动拆装箱 b,泛型 c,可变参数 d,静态导入 e,增强for循环 f,互斥锁 g,枚举 JDK7新特性 * A:二进制字面量 * B:数字字面量可以出现下划线 * C:swit ...

  6. Java Development Kit(JDK) 8 新特性(简述)

    一.接口的默认方法 Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法. 示例如下: interface Formula { calcul ...

  7. Kali Liunx 2.0震撼来袭(附下载地址、新特性和更新日志)

    Kali 2.0昨天已经在BlackHat 2015 USA上正式发布了.无论是粉丝们还是Kali官方都对这个2.0版本抱有极大的期待和热情.这是第一个基于Debian Jessie的Kali版本,此 ...

  8. JDK 8 新特性之函数式编程 → Stream API

    开心一刻 今天和朋友们去K歌,看着这群年轻人一个个唱的贼嗨,不禁感慨道:年轻真好啊! 想到自己年轻的时候,那也是拿着麦克风不放的人 现在的我没那激情了,只喜欢坐在角落里,默默的听着他们唱,就连旁边的妹 ...

  9. Hadoop2.0新特性-持续追加【干货】

    1.NAME NODE HA 2.NAME NODE Federation 3.HDFS 快照(目录快照) 4.HDFS 缓存 5.HDFS ACL 6.异构层级存储结构 -------------- ...

  10. JDK 9 & JDK 10 新特性

    JDK 9 新增了不少特性,官方文档:https://docs.oracle.com/javase/9/whatsnew/toc.htm#JSNEW-GUID-527735CF-44E1-4144-9 ...

随机推荐

  1. Netty源码学习3——Channel ,ChannelHandler,ChannelPipeline

    系列文章目录和关于我 零丶引入 在Netty源码学习2--NioEventLoop的执行中,我们学习了NioEventLoop是如何进行事件循环以及如何修复NIO 空轮询的bug的,但是没有深入了解I ...

  2. api接口对接如何实现商品数据采集的

    在当前互联网行业中,快速准确地采集和处理大量数据是非常重要的一项任务.而实现商品数据采集则是许多企业和电商平台必须完成的任务之一.使用API接口对接进行商品数据采集可以大大提高数据采集效率和准确性.下 ...

  3. springboot整合feign的接口抽离

    前言 现在很多微服务框架使用feign来进行服务间的调用,需要在服务端和消费端两边分别对接口和请求返回实体进行编码,维护起来也比较麻烦.那有木有一种可能,只用服务端编写接口,客户端像本地方法一样调用, ...

  4. ERP进销存系统源码

    介绍 ERP进销存管理系统 软件架构 核心框架:SpringBoot 2.0.0 持久层框架:Mybatis 1.3.2 日志管理:Log4j 2.10.0 JS框架:Jquery 1.8.0 UI框 ...

  5. 领域驱动设计(DDD):DDD落地问题和一些解决方法

    欢迎继续关注本系列文章,下面我们继续讲解下DDD在实战落地时候,会具体碰到哪些问题,以及解决的方式有哪些. DDD 是一种思想,主要知道我们方向,具体如何做,需要我们根据业务场景具体问题具体分析. 充 ...

  6. [SDR] SDR 教程实战 —— 利用 GNU Radio + HackRF 手把手深入了解蓝牙协议栈(从电磁波 -> 01数据流 -> 蓝牙数据包)

    目录 0.前言 1.体验 2.代码解析 2.1 目录结构 2.2 main.py 2.3 grc gnu radio 流程图 2.4 如何从 01 数据流中解析出 BLE 广播包 2.4.1 物理层 ...

  7. Java 21 新特性:switch的模式匹配

    在之前的Java 17新特性中,我们介绍过关于JEP 406: switch的模式匹配,但当时还只是关于此内容的首个预览版本.之后在JDK 18.JDK 19.JDK 20中又都进行了更新和完善.如今 ...

  8. 「joisc2016 - D3T2」回転寿司

    题意大概是这样,「每次操作选出区间中的一个 LIS(strictly),满足其开端是极靠近左端点且大于 \(A\) 的位置,答案即这个 LIS 的末尾,做一个轮换后弹出序列末端」. 首先做几个观察. ...

  9. 查看docker容器使用的cpu和内存

    转载请注明出处: 使用docker ps命令列出正在运行的Docker容器,并获取目标容器的ID或名称. 使用docker stats <容器ID或名称>命令来实时监测指定容器的资源使用情 ...

  10. AcWing 第102场周赛 题解

    第一次ak周赛,写篇题解纪念一下 第一题 给定两个长度为 n n n 的整数序列 a 1 , a 2 , - , a n a_1,a_2,-,a_n a1​,a2​,-,an​ 以及 b 1 , b ...