JAVA9-17特性梳理
9
jshell
一个可以直接执行JAVA代码的命令行shell
接口私有方法
可以在接口中声明private修饰的方法
try with resource更新
支持处理在语句块外部创建的资源
FileInputStream fis = new FileInputStream("in.txt");
FileOutputStream fos = new FileOutputStream("out.txt");
try (fis; fos) {
} catch (IOException e) {
e.printStackTrace();
}
禁用下划线变量
字符串实现更新
char数组改为使用byte数组
模块化
stream更新
增加方法takeWhile dropWhile ofNullable iterate
新增HttpClient
10
局部变量类型推断
可以使用var声明局部变量,编译器会自动推断变量类型
11
直接运行JAVA文件
String新增方法
- 去除首尾空白strip,去除头部空白stripLeading,去除尾部空白stripTrailing
- 判断空白isBlank。长度0,或全是空格,制表符等空白字符
- 重复打印repeat
- 拆行lines
lambda表达式参数类型推断
可以使用var生命表达式参数
12
13
文本块
可以使用三重双引号直接包裹多行文本
String s = """
Hello
World
""";
14
switch更新
定版发布了12,13中预览更新
- 避免过多break
switch (day) {
case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);
case TUESDAY -> System.out.println(7);
case THURSDAY, SATURDAY -> System.out.println(8);
case WEDNESDAY -> System.out.println(9);
default -> System.out.println(0);
}
- 支持返回值
int numLetters = switch (day) {
case MONDAY, FRIDAY, SUNDAY -> 6;
case TUESDAY -> 7;
case THURSDAY, SATURDAY -> 8;
case WEDNESDAY -> 9;
default -> 0;
};
15
TreeMap新增方法
putIfAbsent
computeIfAbsent
computeIfPresent
compute
merge
16
关键字record
用于定义POJO类,不必书写类实现
Person.java
public record Person(String name, Integer age){}
时间段格式化
新增模板字符B,用于获取“午夜”,“凌晨”,“清晨”,“上午”,“中午”,“下午”,“晚上”这样格式的信息
System.out.println(DateTimeFormatter.ofPattern("B").format(LocalDateTime.now()));
instanceof
// 之前
if (obj instanceof String) {
String s = (String) obj;
...
}
// 之后
if (obj instanceof String s) {
// 可直接使用变量s
...
}
jpackage打包工具
17
sealed关键字
用于限制接口或类只能被指定的接口或类实现或继承
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2020-04-11 spring 启动时自动运行
2020-04-11 spring cloud oauth2授权服务 默认tokenService配置源码
2020-04-11 spring cloud 搭建oauth2授权服务 使用redis存储令牌
2020-04-11 spring cloud oauth2授权服务 clientDetails配置源码
2020-04-11 spring 验证框架
2020-04-11 IDEA 插件整理
2020-04-11 spring security笔记 默认登陆页面源码