JAVA10有哪些新特性

JAVA10有哪些新特性1、gooood个人博客网站Javascript作为当今使用最广泛的编程语言之一的Java在2018年3月21日发布了第十个大版本。2、为了更快地迭代、更好地跟进社区反馈,Java语言版本发布周期调整为每隔6个月发布一次

JAVA10有哪些新特性

1、gooood个人博客网站Javascript

作为当今使用最广泛的编程语言之一的 Java 在 2018 年 3 月 21 日发布了第十个大版本。

2、为了更快地迭代、更好地跟进社区反馈,Java 语言版本发布周期调整为每隔 6 个月发布一次。

3、Java 10 是这一新规则之后,采用新发布周期的第一个大版本。

4、Java 10 版本带来了很多新特性,其中最备受广大开发者关注的莫过于局部变量类型推断

5、除此之外,还有其他包括垃圾收集器改善、GC 改进、性能提升、线程管控等一批新特性。

6、本文主要针对 Java 10 中的新特性展开介绍,希望读者能从本文的介绍中快速了解 Java 10 带来的变化

7、

局部变量类型推断

局部变量类型推断是 Java 10 中最值得开发人员注意的新特性,这是 Java 语言开发人员为了简化 Java 应用程序的编写而进行的又一重要改进

8、

这一新功能将为 Java 增加一些新语法,允许开发人员省略通常不必要的局部变量类型初始化声明

9、新的语法将减少 Java 代码的冗长度,同时保持对静态类型安全性的承诺

20、局部变量类型推断主要是向 Java 语法中引入在其他语言(比如 C#、Javascript)中很常见的保留类型名称 var

11、但需要特别注意的是:var 不是一个关键字,而是一个保留字。

12、只要编译器可以推断此种类型,开发人员不再需要专门声明一个局部变量的类型,也就是可以随意定义变量而不必指定变量的类型。

14、以下是一个简单的例子:

清单 1. 局部变量类型推断示例

var

list

=

new

ArrayList

<

String

>();

// ArrayList

var

stream

=

list

.

stream

();

// Stream

看着是不是有点 JS 的感觉?有没有感觉越来越像 JS 了?虽然变量类型的推断在 Java 中不是一个崭新的概念,但在局部变量中确是很大的一个改进

15、说到变量类型推断,从 Java 5 中引进泛型,到 Java 7 的 操作符允许不绑定类型而初始化 List,再到 Java 8 中的 Lambda 表达式,再到现在 Java 10 中引入的局部变量类型推断,Java 类型推断正大刀阔斧地向前进步、发展

16、

而上面这段例子,在以前版本的 Java 语法中初始化列表的写法为:

清单 2. Java 类型初始化示例

List

<

String

>

list

=

new

ArrayList

<

String

>();

Stream

<

String

>

stream

=

getStream

();

在运算符允许在没有绑定 ArrayList 的类型的情况下初始化列表的写法为:

清单 3. Java 7 之后版本类型初始化示例

List

<

String

>

list

=

new

linkedList

();

Stream

<

String

>

stream

=

getStream

();

但这种 var 变量类型推断的使用也有局限性,仅局限于具有初始化器的局部变量、增强型 for 循环中的索引变量以及在传统 for 循环中声明的局部变量,而不能用于推断方法的参数类型,不能用于构造函数参数类型推断,不能用于推断方法返回类型,也不能用于字段类型推断,同时还不能用于捕获表达式(或任何其他类型的变量声明)

17、

不过对于开发者而言,变量类型显式声明会提供更加全面的程序语言信息,对于理解和维护代码有很大的帮助

18、Java 10 中新引入的局部变量类型推断能够帮助我们快速编写更加简洁的代码,但是局部变量类型推断的保留字 var 的使用势必会引起变量类型可视化缺失,并不是任何时候使用 var 都能容易、清晰的分辨出变量的类型

19、一旦 var 被广泛运用,开发者在没有 IDE 的支持下阅读代码,势必会对理解程序的执行流程带来一定的困难

20、所以还是建议尽量显式定义变量类型,在保持代码简洁的同时,也需要兼顾程序的易读性、可维护性。

21、

整合 JDK 代码仓库

为了简化开发流程,Java 10 中会将多个代码库合并到一个代码仓库中。

22、

在已发布的 Java 版本中,JDK 的整套代码根据不同功能已被分别存储在多个 Mercurial 存储库,这八个 Mercurial 存储库分别是:root、corba、hotspot、jaxp、jaxws、jdk、langtools、nashorn

标签

JAVA10
有哪
些新
特性

创业项目群,学习操作 18个小项目,添加 微信:niuben22  备注:小项目

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1553299181@qq.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.tjman.cn/21810.html