搜公众号
推荐 原创 视频 Java开发 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库
Lambda在线 > 大数据躺过的坑 > 【蓝瘦香菇】Java 9 还没会用,Java 10 就要来了!

【蓝瘦香菇】Java 9 还没会用,Java 10 就要来了!

大数据躺过的坑 2018-03-13
举报



温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。


点击上方 "大数据躺过的坑" 关注我们



推荐阅读

+

在前面的博文里,我已经介绍了




















2017年8月,JCP执行委员会提出将Java的发布频率改为每六个月一次随后,Oracle发言人Donald Smith在他的博客中确认了这一消息。该决定将在Java 9正式发布之后开始实行,也就是说,Java的下一个发布日期是2018年3月





每年的3月份和9月份新版本发布

新的发布周期严格遵循时间点,将在每年的3月份和9月份发布。与现在的发布周期不同,新的发布计划不会为了等待某个主要特性完成而延期。如果一个特性还没有完成,它就不会被合并到发布用的代码仓库里。如果错过了一个版本,就要等待下一次发布。在此之前,Java 8也因为安全问题延期了8个月左右,Java 9因为模块化系统(Jigsaw)问题一再延期,比预期晚了18个月发布

也就是说,作为一个Java开发,你使用的编程语言,每半年都会有一个新的版本出来。这无疑是一件好事儿。

随着新技术的不断退出,对于开发者的挑战也就越来越大。像我在我的文章中多次提到过的观点:作为一个开发人员,最大的挑战就是如何保证自己了解新的技术。好在你现在关注了大数据躺过的坑,我会和你一起学习这些新技术。



Java 10将于本月发布

按照上面提到的Java发布进度,Java 10将于本月发布。因为Java 10的时间线较短,范围也相对较小,所以Java 10的变更将通过JEP进行跟踪。

有望被包含在Java 10中的特性是那些已经处于Targeted或Proposed状态的JEP,它们包括:

286:本地变量类型推断 

296:统一JDK仓库 

304:垃圾回收器接口 

307:G1的并行Full GC 

310:应用程序类数据共享 

312:ThreadLocal握手机制



        本文,主要来介绍一个特性:本地变量类型推断因为它将改变你写代码的方式。

什么是本地变量推断

        它其实是一个新的语法糖,在我的GitChat《深入分析Java语法糖》中我详细介绍过目前Java中的所有语法糖及其背后的原理。Java现在在逐渐往多糖语言转变,从Java 7开始便有意的开始加入语法糖。同样,为了方便和简化开发,Java 10将提供一个新的语法糖——本地变量类型推断。

类型推断,并不是Java语言独有的特性,许多流行的编程语言,比如C++, C#以及Go,在定义过程中,都提供一种局部变量类型推断的功能(例如C++提供了auto 关键字,C#提供var关键字)。

        在当前版本的Java(Java<10)中,我们想定义局部变量时。我们需要在赋值的左侧提供显式类型,并在赋值的右边提供实现类型,如下面的片段所示:

MyObject value = new MyObject();

List  list = new ArrayList ();

    在Java 10中,你可以这样定义对象:

var value = new MyObject();

var list = new ArrayList ();

        正如你所看到的,本地变量类型推断将引入“var”关键字,而不需要显式的规范变量的类型。

        很简单,如果你想使用这个特性,就在你定义局部变量的时候引入var关键字就可以了。至于它背后的实现原理,后续会单独开一篇文章来解释这个语法糖。




背后的故事

        在JEP 286诞生之前,Oracle曾做过一个调查,主要是想看看社区对于这一特性的反应。

        第一个调查是:你认为Java引入局部变量的类型推断咋样?

【蓝瘦香菇】Java 9 还没会用,Java 10 就要来了!



        第二个调查是:你希望使用哪个关键字来定义变量?

【蓝瘦香菇】Java 9 还没会用,Java 10 就要来了!

        从上面的两个调查,我们可以知道,这一特性是受到广大开发者欢迎的,因为他确实方便了很多。



它将如何影响你的代码

        当一个新特性来临的时候,我们首先要问自己一个问题:这将如何影响我的代码? 下面我们来看下这一特性可以使用在哪些场景中,以及在哪些场景中不能使用。

适用范围:

(1)初始化局部变量 

        一定是初始化的时候,只是定义是不可以的。如var foo;不可以,但是var foo = "Foo";可以。

(2)增强for循环的索引

        如for (var nr : numbers) 

(3)传统for循环的局部变量定义

        如 for (var i = 0; i < numbers.size(); i++)


不适用范围:

  • 方法的参数

  • 构造函数的参数

  • 方法的返回值类型

  • 对象的成员变量

  • 只是定义定义而不初始化



总结

        在Java 10之后你在声明局部变量类型的时候可以使用var来告知编译器进行类型推断。这仅仅发生在变量初始化的阶段,就像 var s = "";这样。 此外,也可以是用在普通for循环和增强for循环中。    

        除了局部变量之外,另外在属性和方法返回值类型中,不能使用var。 这样做是为了避免引起一些无法预知的错误。

        尽管引入var变量会使代码可读性变得更糟,但此次的新特性为开发者提供了一种在编写复杂表达式的时候寻求了一个新的契机。











大数据和人工智能躺过的坑  (总群):   161156071

hadoop开发   :       276519852

大数据零基础入门 :  416348910

spark零基础入门: 285025652

hadoop零基础入门:  541092360

大数据开发 :  207591869

大数据手把手交流 :  201590535

大数据零基础收徒咨询  :   132603465

大数据内部收徒咨询群  :  469185229








【蓝瘦香菇】Java 9 还没会用,Java 10 就要来了!


















如何加入大数据





【蓝瘦香菇】Java 9 还没会用,Java 10 就要来了!
















如何加入人工智能




【蓝瘦香菇】Java 9 还没会用,Java 10 就要来了!









      本文版权归大数据躺过的坑)作者和微信公众平台共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。 如果您认为这篇文章还不错或者有所收获,您可以通过下边的“打赏”功能 打赏我一杯咖啡【物质支持】,也可以点击右下角的【点赞】按钮【精神支持】,因为这两种支持都是我继续写作,分享的最大动力!

看完本文有收获?请转发分享给更多人

关注「大数据躺过的坑」,提升大神技能



欢迎新旧粉丝(撒花),我是大数据躺过的坑九月哥。大家对微信博文有什么问题都可以@我留言,我会尽快回复大家。希望以后可以和各位成为技术道友!

【蓝瘦香菇】Java 9 还没会用,Java 10 就要来了!
【蓝瘦香菇】Java 9 还没会用,Java 10 就要来了!

九月哥






超过100000+人正在关注

【蓝瘦香菇】Java 9 还没会用,Java 10 就要来了!
【蓝瘦香菇】Java 9 还没会用,Java 10 就要来了!
【蓝瘦香菇】Java 9 还没会用,Java 10 就要来了!
【蓝瘦香菇】Java 9 还没会用,Java 10 就要来了!
【蓝瘦香菇】Java 9 还没会用,Java 10 就要来了!
【蓝瘦香菇】Java 9 还没会用,Java 10 就要来了!
【蓝瘦香菇】Java 9 还没会用,Java 10 就要来了!
【蓝瘦香菇】Java 9 还没会用,Java 10 就要来了!
【蓝瘦香菇】Java 9 还没会用,Java 10 就要来了!
【蓝瘦香菇】Java 9 还没会用,Java 10 就要来了!
【蓝瘦香菇】Java 9 还没会用,Java 10 就要来了!
【蓝瘦香菇】Java 9 还没会用,Java 10 就要来了!
【蓝瘦香菇】Java 9 还没会用,Java 10 就要来了!
【蓝瘦香菇】Java 9 还没会用,Java 10 就要来了!






觉得不错,请点赞和留言↓


原文来源:IT派 | 微信综合大数据躺过的坑,原文有删节,阅读原文

版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《【蓝瘦香菇】Java 9 还没会用,Java 10 就要来了!》的版权归原作者「大数据躺过的坑」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

举报