资讯专栏INFORMATION COLUMN

Java 10的10个新特性,将彻底改变你写代码的方式!

ityouknow / 932人阅读

摘要:的新特性说了这么多,看都会有哪些特性来改变我们写代码的方式呢局部变量类型推断局部变量类型推断可以说是中最值得注意的特性,这是语言开发人员为了简化应用程序的编写而采取的又一步,如下图所示。

Java 9才发布几个月,很多玩意都没整明白,现在Java 10又快要来了。。

这时候我真尼玛想说:线上用的JDK 7 甚至JDK 6,JDK 8 还没用熟,JDK 9 才发布不久不知道啥玩意,JDK 10……

刚学Java的同学是不是感觉一脸蒙逼?!!!

就连我这个老司机也同样感觉如此!

Java 更新越来越快,我们做技术的也要跟上步伐,不然总会慢别人一拍,这新东西从国外到国内应用一般要好几年的时间,如果我们提前了解并应用这些新技术对自己不是坏事。

Java 10的新特性

说了这么多,看Java 10都会有哪些特性来改变我们写代码的方式呢?!

1.局部变量类型推断

局部变量类型推断可以说是Java 10中最值得注意的特性,这是Java语言开发人员为了简化Java应用程序的编写而采取的又一步,如下图所示。

这个新功能将为Java增加一些语法糖 - 简化它并改善开发者体验。新的语法将减少与编写Java相关的冗长度,同时保持对静态类型安全性的承诺。

局部变量类型推断将引入"var"关键字,也就是你可以随意定义变量而不必指定变量的类型,如:

List  list = new ArrayList (); 
Stream  stream = getStream();

将被下面这个新语法所取代:

var list = new ArrayList (); 
var stream = getStream();

看完是不是有点JS的即视感???越来越像JS了吗?!虽然类型推断在Java中不是一个新概念,但在局部变量中确是很大的一个改进。

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

// 该运算符允许在没有绑定ArrayList <>的类型的情况下初始化列表
List  list = new LinkedList <>();

局部变量类型推荐仅限于如下使用场景:

局部变量初始化

for循环内部索引变量

传统的for循环声明变量

Java官方表示,它不能用于以下几个地方:

方法参数

构造函数参数

方法返回类型

字段

捕获表达式(或任何其他类型的变量声明)

2.GC改进和其他内务管理

JDK 10中有2个JEP专门用于改进当前的垃圾收集元素。

第一个垃圾收集器接口是(JEP 304),它将引入一个纯净的垃圾收集器接口,以帮助改进不同垃圾收集器的源代码隔离。

预定用于Java 10的第二个JEP是针对G1的并行完全GC(JEP 307),其重点在于通过完全GC并行来改善G1最坏情况的等待时间。G1是Java 9中的默认GC,并且此JEP的目标是使G1平行。

3.线程本地握手(JEP 312)

JDK 10将引入一种在线程上执行回调的新方法,因此这将会很方便能停止单个线程而不是停止全部线程或者一个都不停。

4.备用内存设备上的堆分配(JEP 316)

允许HotSpot VM在备用内存设备上分配Java对象堆内存,该内存设备将由用户指定。

5.其他Unicode语言 - 标记扩展(JEP 314)

目标是增强java.util.Locale及其相关的API,以便实现语言标记语法的其他Unicode扩展(BCP 47)。

6.基于Java的实验性JIT编译器(JEP 317)

Oracle希望将其Java JIT编译器Graal用作Linux / x64平台上的实验性JIT编译器。

7.根证书(JEP 319)

这个的目标是在Oracle的Java SE中开源根证书。

8.根证书认证程序(CA)

这将使OpenJDK对开发人员更具吸引力,它还旨在减少OpenJDK和Oracle JDK构建之间的差异。

9.将JDK生态整合到单个存储库中(JEP 296)

此JEP的主要目标是执行一些内存管理,并将JDK生态的众多存储库组合到一个存储库中。

10.删除Native-Header生成工具(javah)(JEP 313)

从JDK中移除了javah工具,这个很简单并且很重要。

尝鲜

就像所有其他JDK版本一样,Oracle已经发布了一个Java 10初始候选版本,Java开发者可以下载此版本用来测试新功能。如果你对Java 10抱有期待想提早尝试,那么现在就开始吧!

尝鲜地址:http://openjdk.java.net/proje...
最后的感悟

对于第一点新特性来说确实是一个大的跨越,其他特性或多或少都能带给开发者福音。但最终Java 10会是什么样,或许还会增加更多实用性的新功能或者优化,我们还得期待!

现在要做的就是,赶紧熟悉JDK 8,现在已经是很多互联网企业标配了。如果还在使用JDK4-7,那真的是要OUT了。。

在不久的将来,Java 10将彻底改变你写代码的方式!

推荐:成为架构师的十阶段学习资料

推荐:Spring Boot & Cloud 最强技术教程

推荐:分享一套高级Java笔试题(实拍高清图)

如果对你有用,欢迎分享到朋友圈

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/71320.html

相关文章

  • Java核心技术教程整理,长期更新

    以下是Java技术栈微信公众号发布的关于 Java 的技术干货,从以下几个方面汇总。 Java 基础篇 Java 集合篇 Java 多线程篇 Java JVM篇 Java 进阶篇 Java 新特性篇 Java 工具篇 Java 书籍篇 Java基础篇 8张图带你轻松温习 Java 知识 Java父类强制转换子类原则 一张图搞清楚 Java 异常机制 通用唯一标识码UUID的介绍及使用 字符串...

    Anchorer 评论0 收藏0
  • Lombok介绍、使用方法和总结

    摘要:使用方法能以简单的注解形式来简化代码,提高开发人员的开发效率。能通过注解的方式,在编译时自动为属性生成构造器方法。出现的神奇就是在源码中没有和方法,但是在编译生成的字节码文件中有和方法。没法实现多种参数构造器的重载。 1 Lombok背景介绍 官方介绍如下: Project Lombok makes java a spicier language by addi...

    30e8336b8229 评论0 收藏0
  • JDK11新特性解读

    摘要:千呼万唤,于正式发布版本即,也就是官方推荐可以广泛使用的版本,其中发布了包括等个新特性,让我们一睹为快。一新特性一览二发布计划日期阶段说明对进入阶段的变化会应用越来越严格的审查。我们需要支持以保持竞争力并与最新标准保持同步。 千呼万唤,JDK11于2018-09-25正式发布GA版本(GA即General Availability,也就是官方推荐可以广泛使用的版本),其中发布了包括ZG...

    piglei 评论0 收藏0
  • 「码个蛋」2017年200篇精选干货集合

    摘要:让你收获满满码个蛋从年月日推送第篇文章一年过去了已累积推文近篇文章,本文为年度精选,共计篇,按照类别整理便于读者主题阅读。本篇文章是今年的最后一篇技术文章,为了让大家在家也能好好学习,特此花了几个小时整理了这些文章。 showImg(https://segmentfault.com/img/remote/1460000013241596); 让你收获满满! 码个蛋从2017年02月20...

    wangtdgoodluck 评论0 收藏0

发表评论

0条评论

ityouknow

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<