java
标准化、规范化
java代码风格
【目录】java
编程-java8
编程-java9
编程-java-见过的异常
gradle
编程-java21
编程-java23
编程-java17
编程-java11
【目录】java-web-其它框架
java-vertx
quarkus
javalin
solon
Helidon
【目录】spring家族
spring
springcloud + nacos
consul
springboot启动流程
springboot使用及原理
springcloud
优化springboot
【java高级】
java-多线程-问题记录
java高级-ArrayList
java高级-HashMap
jdk源码解析-TreeMap红黑树
java对象占用多少字节
juc(并发)
ThreadPoolExecutor中ctl变量的理解
ThreadPoolExecutor分析
JVM(java虚拟机)
jvm学习路线
jvm
Java启动参数
debug
java-debug-arthas
java-debug-jdb
高并发/高性能/高可用
设计代码或编写代码时应该考虑的
如何发现系统中的瓶颈?
场景分析
mysql
mysql explain
mysql主从
mysql常见异常
方法论
工作中遇到的问题记录
代码优化
学习的思路
产品
本文档使用 MrDoc 发布
-
+
首页
编程-java17
## JDK17新特性 ### 文本块 jdk17之前的。 ```java public static final String getHtmlJDK8() { return "<html>\n" + " <body>\n" + " <p>Hello, world</p>\n" + " </body>\n" + "</html>"; } ``` jdk17时的。 ```java public static final String getHtmlJDK17() { return """ <html> <body> <p>Hello, world</p> </body> </html> """; } ``` ### NullPointerException 增强 提供了更详细的空指针异常信息,帮助开发者迅速定位问题源头。 ### Records 不如lombok好用。 ```java public record StudentRecord(Long stuId, String stuName, int stuAge, String stuGender, String stuEmail) { public StudentRecord { System.out.println("构造函数"); } public static void main(String[] args) { StudentRecord record = new StudentRecord(1L, "张三", 16, "男", "xxx@qq.com"); System.out.println(record); } } ``` ### 全新的switch表达式 注意这里是switch表达式,而不是语句。主要的差别就是就是表达式有返回值,而语句则没有。 ### 私有接口方法 从Java8开始,允许在interface里面添加默认方法,其实当时就有些小困惑,如果一个default方法体很大怎么办,拆到另外的类去写吗?实在有些不太合理,所以在Java17里面,如果一个default方法体很大,可以通过新增接口私有方法来进行一个合理的拆分了。 ### 模式匹配 模式匹配主要用于instanceof表达式。模式匹配增强了instanceof的语法和功能,使类型检查和类型转换更加简洁和高效。 jdk17之前的代码: ```java if (value instanceof String) { String v = (String) value; System.out.println("一个String类型" + v.toUpperCase()); } else { // 其它代码 } ``` jdk17时: ```java if (value instanceof String v) { System.out.println("一个String类型" + v.toUpperCase()); } else { // 其它代码 } ``` ### Sealed类 Sealed类是一种新的类修饰符,用于限制类的继承。Sealed类可以控制哪些类可以继承自它,这样可以使得代码更加安全、可维护。Sealed类的使用可以在编译时强制执行一些规则,从而避免运行时错误。 实际编程中不常用。
我是张三
2024年11月8日 16:57
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
eblog
Markdown文件
分享
链接
类型
密码
更新密码