一、Java 文本块(Java 15 正式) 1、基本介绍 2、演示 String json= """ { "name": "Tom", "age": 27 } """ ; System . out. println ( json) ; # 输出结果 { "name": "Tom", "age": 27 }二、Record 类(Java 16 正式) 1、基本介绍 自动生成构造器、getter 方法、equals 方法、hashCode 方法、toString 方法 2、演示 (1)Record public record Person ( String name, int age, String email) { // 添加紧凑构造器做参数校验 public Person { if ( age< 0 ) { throw new IllegalArgumentException ( "年龄不能为负数" ) ; } if ( email== null || ! email. contains ( "@" ) ) { throw new IllegalArgumentException ( "邮箱格式无效" ) ; } } public String getGreeting ( ) { return "Hello, " + name; } } (2)Test Person p= new Person ( "李四" , 25 , "lisi@example.com" ) ; System . out. println ( p) ; System . out. println ( p. name ( ) ) ; System . out. println ( p. age ( ) ) ; System . out. println ( p. getGreeting ( ) ) ; # 输出结果 Person[name=李四, age=25, email=lisi@example.com] 李四 25 Hello, 李四Person p1= new Person ( "李四" , 25 , "lisi@example.com" ) ; Person p2= new Person ( "李四" , 25 , "lisi@example.com" ) ; System . out. println ( p1. equals ( p2) ) ; # 输出结果 truePerson p= new Person ( "李四" , - 25 , "lisi@example.com" ) ; # 输出结果 Exception in thread "main" java.lang.IllegalArgumentException: 年龄不能为负数Person p= new Person ( "李四" , 25 , "lisiexample.com" ) ; # 输出结果 Exception in thread "main" java.lang.IllegalArgumentException: 邮箱格式无效三、instanceof 模式匹配(Java 16 正式) 1、基本介绍 2、演示 旧写法,需要显式强转 Object obj= "Hello Java" ; if ( objinstanceof String ) { String s= ( String ) obj; System . out. println ( s. length ( ) ) ; } # 输出结果 10新模式匹配,同时完成判断和赋值,可以直接使用 Object obj= "Hello Java" ; if ( objinstanceof String s) { System . out. println ( s. length ( ) ) ; } # 输出结果 10还可以配合&&使用,但不能配合||使用 Object obj= "Hello Java" ; if ( objinstanceof String s&& s. length ( ) > 5 ) { System . out. println ( "字符串长度大于 5: " + s) ; } # 输出结果 字符串长度大于 5: Hello Java对集合中的元素使用 List < Object > list= List . of ( "Java" , 123 , "Record" ) ; for ( Object item: list) { if ( iteminstanceof String str) { System . out. println ( "字符串: " + str) ; } else if ( iteminstanceof Integer num) { System . out. println ( "数字: " + num) ; } } # 输出结果 字符串: Java 数字: 123 字符串: Record四、Switch 表达式增强(Java 14 正式) 1、基本介绍 作为表达式返回值,配合->和 yield,代码更简洁 2、演示 旧写法 String day= "MONDAY" ; int workHours; switch ( day) { case "MONDAY" : case "TUESDAY" : case "WEDNESDAY" : case "THURSDAY" : case "FRIDAY" : workHours= 8 ; break ; case "SATURDAY" : workHours= 5 ; break ; case "SUNDAY" : workHours= 0 ; break ; default : throw new IllegalArgumentException ( "无效的星期:" + day) ; } System . out. println ( "工作时长:" + workHours) ; String day= "MONDAY" ; String feeling; switch ( day) { case "MONDAY" : System . out. println ( "周一综合征" ) ; feeling= "疲惫" ; break ; case "FRIDAY" : System . out. println ( "终于周五了" ) ; feeling= "兴奋" ; break ; default : feeling= "普通" ; break ; } System . out. println ( "心情:" + feeling) ; 新写法 String day= "MONDAY" ; int workHours= switch ( day) { case "MONDAY" , "TUESDAY" , "WEDNESDAY" , "THURSDAY" , "FRIDAY" -> 8 ; case "SATURDAY" -> 5 ; case "SUNDAY" -> 0 ; default -> throw new IllegalArgumentException ( "无效的星期:" + day) ; } ; System . out. println ( "工作时长:" + workHours) ; String day= "MONDAY" ; String feeling= switch ( day) { case "MONDAY" -> { System . out. println ( "周一综合征" ) ; yield "疲惫" ; } case "FRIDAY" -> { System . out. println ( "终于周五了" ) ; yield "兴奋" ; } default -> "普通" ; } ; System . out. println ( "心情:" + feeling) ;