网站首页 > 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新特性(三)档案类
猜你喜欢
- 2024-10-13 Java正则表达式(java正则表达式匹配换行符)
- 2024-10-13 JAVA面试考点合集!常用关键字及修饰符
- 2024-10-13 Java基础入门(Character类)(java character.isletter)
- 2024-10-13 好程序员Java培训分享Java之命名、标示符、变量
- 2024-10-13 “全栈2019”Java第十六章:下划线在数字中的意义
- 2024-10-13 基础教程:Java Character类(java教程 chm)
- 2024-10-13 “全栈2019”Java异常第五章:finally关键字(应用场景)详解
- 2024-10-13 “全栈2019”Java第十四章:二进制、八进制、十六进制
- 2024-10-13 Java零基础程序阅读五(java基础入门课后编程题)
- 2024-10-13 字符串的转义符,在Python 3.6中你可以这样做
你 发表评论:
欢迎- 最近发表
-
- 五,网络安全IDA Pro反汇编工具初识及逆向工程解密实战
- 「JAVA8」- Lambda 表达式(java lambda表达式原理)
- 深入探讨Java代码保护:虚拟机保护技术的新时代
- Nginx反向代理原理详解(图文全面总结)
- 逆向拆解日本IT,哪些Java技术栈薪资溢价高
- mybatis 逆向工程使用姿势不对,把表清空了,心里慌的一比
- Spring Boot集成ProGuard轻松实现Java 代码混淆, Java 应用固若金汤
- 从 Java 代码逆向工程生成 UML 类图和序列图
- 人与人相处:尊重是标配,靠谱是高配,厚道是顶配
- Windows系统安装日期如何修改(windows10怎么修改安装日期)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)