龙空技术网

JAVA新特性(二)文字块

为了更好的自己而学习 350

前言:

现时各位老铁们对“java空格转义”都比较注重,小伙伴们都需要学习一些“java空格转义”的相关资讯。那么小编同时在网络上搜集了一些有关“java空格转义””的相关文章,希望看官们能喜欢,各位老铁们快快来了解一下吧!

接上一篇JShell,这篇介绍下文字块。

文字块这个特性,首先在JDK 13中以预览版的形式发布。在JDK 14中,改进的文字块再次以预览版的形式发布。最后,文字块在JDK 15正式发布。文字块的概念文字块的概念很简单,它是一个由多行文字构成的字符串。为啥需要文字块呢?在java中编写复杂的字符串是一件痛苦的事情,比如我在程序中定义一个json字符串:

//代码里充满里转移符,可读性和可编辑性极差String json = "\\n" +		"{\\n" +		"    \\"key\\":\\"myKey\\",\\n" +		"    \\"value\\":\\"myValue\\"\\n" +		"}";
所见及所得的文字块看下如果使用文字块,同一个json串:
//可读性、可编辑性大大增强String jsonNew = """		{			"key":"myKey",			"value":"myValue"		}""";
文字块和字符串的区别是啥?

不同于传统字符串的是,在编译期,文字块要顺序通过如下三个不同的编译步骤:

1.为了降低不同平台间换行符的表达差异,编译器把文字内容里的换行符统一转换成 LF(u000A);2.为了能够处理Java源代码里的缩进空格,要删除所有文字内容行和结束分隔符共享的前导空格,以及所有文字内容行的尾部空格;3.最后处理转义字符,这样开发人员编写的转义序列就不会在第一步和第二步被修改或删除。

我的理解文字块就是java语言对字符串在编译期的优化。

你们是怎么看的呢?欢迎留言讨论。

下一篇:java新特性(三)档案类

标签: #java空格转义 #java删除图片上的文字内容