#Java#Java 8 到 Java 14,改变了哪些你写代码的方式?( 二 )
本地变量类型推断在Java 10之前版本中 , 我们想定义定义局部变量时 。 我们需要在赋值的左侧提供显式类型 , 并在赋值的右边提供实现类型:
MyObject value = https://mparticle.uc.cn/api/new MyObject();
在Java 10中 , 提供了本地变量类型推断的功能 , 可以通过var声明变量:
var value = https://mparticle.uc.cn/api/new MyObject();
本地变量类型推断将引入“var”关键字 , 而不需要显式的规范变量的类型 。
其实 , 所谓的本地变量类型推断 , 也是Java 10提供给开发者的语法糖 。 虽然我们在代码中使用var进行了定义 , 但是对于虚拟机来说他是不认识这个var的 , 在java文件编译成class文件的过程中 , 会进行解糖 , 使用变量真正的类型来替代var
Switch 表达式在JDK 12中引入了Switch表达式作为预览特性 。 并在Java 13中修改了这个特性 , 引入了yield语句 , 用于返回值 。
而在之后的Java 14中 , 这一功能正式作为标准功能提供出来 。
在以前 , 我们想要在switch中返回内容 , 还是比较麻烦的 , 一般语法如下:
int i;
switch (x) {
case \"1\":
i=1;
break;
case \"2\":
i=2;
break;
default:
i = x.length();
break;
在JDK13中使用以下语法:
int i = switch (x) {
case \"1\" -> 1;
case \"2\" -> 2;
default -> {
int len = args[1
.length();
yield len;
;
或者
int i = switch (x) {
case \"1\": yield 1;
case \"2\": yield 2;
default: {
int len = args[1
.length();
yield len;
;
在这之后 , switch中就多了一个关键字用于跳出switch块了 , 那就是yield , 他用于返回一个值 。 和return的区别在于:return会直接跳出当前循环或者方法 , 而yield只会跳出当前switch块 。
Text BlocksJava 13中提供了一个Text Blocks的预览特性 , 并且在Java 14中提供了第二个版本的预览 。
text block , 文本块 , 是一个多行字符串文字 , 它避免了对大多数转义序列的需要 , 以可预测的方式自动格式化字符串 , 并在需要时让开发人员控制格式 。
我们以前从外部copy一段文本串到Java中 , 会被自动转义 , 如有一段以下字符串:
<html>
<body>
<p>Hello world</p>
</body>
</html>
将其复制到Java的字符串中 , 会展示成以下内容:
\"<html>\\" +
\" <body>\\" +
\" <p>Hello world</p>\\" +
\" </body>\\" +
\"</html>\\";
即被自动进行了转义 , 这样的字符串看起来不是很直观 , 在JDK 13中 , 就可以使用以下语法了:
\"\"\"
<html>
<body>
- 『Java』java数据结构系列——什么是数据结构
- 『Java』马云:成功人跟普通人差不多,但这三点我一定要分享给所有年轻人
- #Java#java线程到底有多少种状态?
- #智能手表#1、初识java-1
- [华为]有朋友问我“JAVA全栈”、“互联网架构师”和“JAVAEE”到底是什么?
- 「javascript」这边走Javascript了解一下
- 手机中国榜单又要变了?,DxOMARK即将公布三星S20+拍照成绩
- 「华为」一篇有趣的Java class
- struts@Java面试之项目面试问题——不看面试会后悔的
- 「Java」六面蚂蚁金服,唬住了面试官要了30K;其实Java面试也没那么难