Java 新特性-文字块
概念
文字块特性在 JDK15 中正式发布,它是一个由多行文字构成的字符串。
文字块由零个或多个内容字符组成,从开始分隔符开始,到结束分隔符结束。开始分隔符是由三个双引号字符 (“””) ,后面跟着的零个或多个空格,以及行结束符组成的序列。结束分隔符是一个由三个双引号字符 (“””) 组成的序列。需要注意的是,开始分隔符必须单独成行;三个双引号字符后面的空格和换行符都属于开始分隔符。所以,一个文字块至少有两行代码。即使是一个空字符,结束分隔符也不能和开始分隔符放在同一行代码里。同样需要注意的是,结束分隔符只有一个由三个双引号字符组成的序列。结束分隔符之前的字符,包括换行符,都属于文字块的有效内容。
编译过程
- 为了降低不同平台间换行符的表达差异,编译器把文字内容里的换行符统一转换成 LF(\u000A);
- 为了能够处理 Java 源代码里的缩进空格,要删除所有文字内容行和结束分隔符共享的前导空格,以及所有文字内容行的尾部空格;
- 最后处理转义字符,这样开发人员编写的转义序列就不会在第一步和第二步被修改或删除。
转义字符
主要有空格转义符 \s 和换行转义符 \ 。
在行首左侧和行尾右侧放置空格转义符,行首左侧的空格转义符至第一个有效字符间的空格不会在编译器被删除,最后一个有效字符至行尾右侧的空格转义符间的空格不会在编译器被删除。
换行转义符出现在一个行的结束位置,这一行的换行符就会被取缔。
实战
空格字符测试
执行下面的代码有助于理解编译过程,代码如下:
1 | |
执行结果如图:

转义字符测试
同样,我们在测试下转义字符的效果,代码如下:
1 | |
执行结果如图:

Java 新特性-文字块
https://blog.yohlj.cn/posts/204f30ad/