记录一些JDK的新特性~持续更新
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的新特性~持续更新的更多相关文章
- php新特性--持续更新
命名空间 在其他语言中不算新鲜事,但php是5.3.0中引入,具体定义就不复述了,其主要作用是 封装和组织相关php类 .命名空间被引入之前php主要是通过Zend方式组织代码,这种方式带来的问题是类 ...
- Java Stream 流(JDK 8 新特性)
什么是 Steam Java 8 中新增了 Stream(流)来简化集合类的使用,Stream 本质上是个接口,接口中定义了很多对 Stream 对象的操作. 我们知道,Java 中 List 和 S ...
- Java lambda 表达式详解(JDK 8 新特性)
什么是 lambda 表达式 lambda 表达式(拉姆达表达式)是 JAVA 8 中提供的一种新的特性,它使 Java 也能进行简单的"函数式编程". lambda 表达式的本质 ...
- JDK 8 新特性
JDK 8, Oracle's implementation of Java SE 8. JDK 8 是 Oracle 对 Java SE 8 规范的实现. 本文分析 JDK 8 引入的新特性. 官方 ...
- JDK的新特性
JDK5新特性 a,自动拆装箱 b,泛型 c,可变参数 d,静态导入 e,增强for循环 f,互斥锁 g,枚举 JDK7新特性 * A:二进制字面量 * B:数字字面量可以出现下划线 * C:swit ...
- Java Development Kit(JDK) 8 新特性(简述)
一.接口的默认方法 Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法. 示例如下: interface Formula { calcul ...
- Kali Liunx 2.0震撼来袭(附下载地址、新特性和更新日志)
Kali 2.0昨天已经在BlackHat 2015 USA上正式发布了.无论是粉丝们还是Kali官方都对这个2.0版本抱有极大的期待和热情.这是第一个基于Debian Jessie的Kali版本,此 ...
- JDK 8 新特性之函数式编程 → Stream API
开心一刻 今天和朋友们去K歌,看着这群年轻人一个个唱的贼嗨,不禁感慨道:年轻真好啊! 想到自己年轻的时候,那也是拿着麦克风不放的人 现在的我没那激情了,只喜欢坐在角落里,默默的听着他们唱,就连旁边的妹 ...
- Hadoop2.0新特性-持续追加【干货】
1.NAME NODE HA 2.NAME NODE Federation 3.HDFS 快照(目录快照) 4.HDFS 缓存 5.HDFS ACL 6.异构层级存储结构 -------------- ...
- JDK 9 & JDK 10 新特性
JDK 9 新增了不少特性,官方文档:https://docs.oracle.com/javase/9/whatsnew/toc.htm#JSNEW-GUID-527735CF-44E1-4144-9 ...
随机推荐
- Kafka-基础
1. 简介 Kafka(Apache Kafka) 是一种分布式流数据平台,最初由LinkedIn开发,并于后来捐赠给Apache软件基金会,成为了一个Apache顶级项目.它被设计用于处理大规模.实 ...
- 单节点 RAID6 可靠性模型
介绍 独立磁盘冗余阵列(Redundant Arrays of Independent Disks, RAID)是存储业界为保证数据可用性.可靠性和完整性所采用的重要技术,即使在分布式多副本如此流行和 ...
- [Maven] maven插件系列之maven-shade-plugin
[Maven] maven插件系列之maven-shade-plugin 1 插件简述/Plugin Overview 1.1 定义与目的/Definition & Goals Officia ...
- Llama2-Chinese项目:1-项目介绍和模型推理
Atom-7B与Llama2间的关系:Atom-7B是基于Llama2进行中文预训练的开源大模型.为什么叫原子呢?因为原子生万物,Llama中文社区希望原子大模型未来可以成为构建AI世界的基础单位.目 ...
- 探析ElasticSearch Kibana在测试工作中的实践应用
一. 为什么使用ES Kibana 离线数据测试中最重要的就是数据验证,一部分需要测试es存储数据的正确性,另一部分就需要验证接口从es取值逻辑的正确性.而为了验证es取值逻辑的正确性,就需要用到Ki ...
- 「atcoder - ABC215G」Colorful Candies 2
link. 称题目中的 \(c_i\) 为 \(a_i\),令 \(c_i\) 为第 \(i\) 种颜色的出现次数,令 \(C\) 为颜色总数.固定 \(k\),令 \(t_i=1\),如果颜色 \( ...
- 【Python爬虫】使用代理ip进行网站爬取
使用代理IP进行网站爬取可以有效地隐藏你的真实IP地址,让网站难以追踪你的访问行为.本文将介绍Python如何使用代理IP进行网站爬取的实现,包括代理IP的获取.代理IP的验证.以及如何把代理IP应用 ...
- 贝塞尔曲线的切线及其AABB问题
贝塞尔曲线的切线及其AABB问题 先聊点别的 2023 年抖音上居然还看到很多前端培训 各种直播前端教学(虽然是录播)但看起来还是有大批前往前端卷啊 说明了什么,很可能说明其它行业更难卷 这不是行业不 ...
- c语言代码练习9
\\判断1000-2000之间的闰年有哪些,有几个 #define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h> int main(){ //判断 ...
- 秋招还没Offer怎么办?
如果你是双非院线.没有实习经历.没有出众的技术(算法没刷一千道,也没做过 Spring Cloud 项目).现在还没有面试(或只有少量的面试).并且目前还没有 Offer,那么恭喜你,你和目前大部分同 ...