问题一:在JDK 13中,switch表达式引入了哪个关键字来从switch表达式返回值?
在JDK 13中,switch表达式引入了哪个关键字来从switch表达式返回值?
参考回答:
在JDK 13中,switch表达式引入了yield关键字来从switch表达式返回值。这使得我们能够更容易地从switch表达式中返回值,并且为实现策略模式提供了便利。
```
public class SwitchTest {
public static void main(String[] args) {
var me = 4;
var operation = "平方";
var result = switch (operation) {
case "加倍" -> {
yield me * 2;
}
case "平方" -> {
yield me * me;
}
default -> me;
};
System.out.println(result);
}
}
```
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/655529
问题二:在JDK 13中,字符串文本块是如何改进字符串嵌入的?
在JDK 13中,字符串文本块是如何改进字符串嵌入的?
参考回答:
在JDK 13中,字符串文本块改进了字符串嵌入的方式。通过使用三引号(""")括起来的文本块,我们可以更容易地编写多行字符串,而无需使用转义字符或字符串连接符。这使得嵌入如JSON或XML这样的多行文本变得更为简洁和易读。
```
String json = """
{
"name" : "Baeldung",
"website" : "https://www.alibaba.com/"
}
""";
```
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/655530
问题三:在Java的String类中,JDK 13之后增加了哪些新的API方法?
在Java的String类中,JDK 13之后增加了哪些新的API方法?
参考回答:
在Java的String类中,JDK 13及以后版本增加了多个新的API方法,包括:
isBlank():如果字符串为空或仅包含空格(包括制表符),则返回true。
lines():将字符串拆分为字符串流,每个字符串包含一行。
strip():从字符串的开头和结尾删除空白字符。
stripLeading()/stripTrailing():仅从字符串的开头或结尾删除空白字符。
repeat(int times):返回一个新字符串,它是原始字符串按指定次数重复的结果。
transform(Function f):将给定的lambda表达式应用于字符串。
请注意,readString()和writeString(Path path)方法并不是String类的一部分,而是可能属于其他类(如Files类)或假设的API,并非直接属于String类。同样,indent(int level)这样的方法也不是String类的标准API。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/655531
问题四:JDK 14 中预览的 instanceof 有什么改进?
JDK 14 中预览的 instanceof 有什么改进?
参考回答:
在 JDK 14 中,instanceof 进行了预览性的改进,允许在判断对象类型的同时进行类型转换。之前的写法是先判断类型,再手动进行类型转换,如
if (obj instanceof String) { String t = (String) obj; }。
而现在可以简化为 if (obj instanceof String t) { /* 此时 t 已经是 String 类型了 */ },直接在 instanceof 判断的同时声明并转换了类型。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/655532
问题五:JDK 16 正式引入了 record 关键字,它有什么特点和优势?
JDK 16 正式引入了 record 关键字,它有什么特点和优势?
参考回答:
JDK 16 正式引入了 record 关键字,用于定义简单的数据载体类。使用 record 关键字定义的类会自动生成构造方法、getter 方法、equals()、hashCode() 和 toString() 方法,从而简化了代码。例如,定义一个 User 类包含 name 和 age 字段,只需写 record User(String name, Integer age) {...} 即可。
关于本问题的更多回答可点击原文查看: