博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 10推"局部变量的类型推断",网友怼"这在C#看来就不是事儿"...
阅读量:6300 次
发布时间:2019-06-22

本文共 1829 字,大约阅读时间需要 6 分钟。

相信对于Java 9的频繁跳票,很多人还心有余悸。虽然Java 10的推出时间,Oracle曾亲自背书不会跳票,但是这按时推出的风格还是让我们有些适应不良。

Java 10推

Java 10的发布虽然与Java 9相隔只有半年时间,但是更新的内容却很丰富,共计提供了109项新功能的支持。其中包括12项关键的新特性:局部变量的类型推断;将 JDK 的多个代码仓库合并到一个储存库中;垃圾收集器接口,通过引入一个干净的垃圾收集器(GC)接口,改善不同垃圾收集器的源码隔离性;向 G1 引入并行 Full GC;应用类数据共享,为改善启动和占用空间,在现有的类数据共享(“CDS”)功能上再次拓展,以允许应用类放置在共享存档中;线程局部管控,允许停止单个线程,而不是只能启用或停止所有线程;移除 Native-Header Generation Tool (javah);额外的 Unicode 语言标签扩展。包括:cu (货币类型)、fw (每周第一天为星期几)、rg (区域覆盖)、tz (时区) 等;在备用内存设备上分配堆内存,允许 HotSpot 虚拟机在备用内存设备上分配 Java 对象堆;基于 Java 的 JIT 编译器(试验版本);根证书,开源 Java SE Root CA 程序中的根证书; 基于时间的版本发布模式,“Feature releases” 版本将包含新特性,“Update releases” 版本仅修复 Bug。

千呼万唤始出来的局部变量的类型推断

如果要说这次Java 10更新中有哪个功能是最受瞩目的?那么,一定非“局部变量的类型推断”莫属。在发布之前,Java 10发布方在网上共计进行了2轮,超2500名使用者的意见征集。最后结果显示,有74%的使用者强烈支持这个功能的发布,12%仅表示了支持,10%的人认为这个功能并不是个好主意。

“局部变量的类型推断”功能意味着未来开发者可以在 Java 10 中引入其他编程语言中常见的var,但需要注意,var不能成为一个关键字,而是一个保留字。开发者可以写这样的代码:var list=new ArrayList<String>(),编辑器可以自动推测出list的类型。

虽然这个功能在写代码的时候给我们带来了便利,但是也有网友针对该功能提出一些异议:

网友1:个人以为,var的引入,在读源码的角度上讲是灾难性的!尤其是对我这种大脑内部堆栈比较浅的人来说。

网友2:真的要这么搞?用var的确可以在写代码的时候提升一点效率,可是读代码呢??我以后是不是要养成从右往左读的习惯?

网友3:var的功能很鸡肋啊

当然也有网友称这个功能在其他语言那里早已得到了实现,并已被证实是优良的语言特性,Java使用者不必太过保守了,纠结会影响阅读代码。还有网友称,“我就不懂了 这些在C#里不是事的功能被java天天拿着吹”。

Java 10有多少人在使用?Java 8和Java 9你舍得抛弃吗?

2017 年Oracle宣布,Java 语言将每隔 6 个月提供一次更新,而Java 10作为首个大版本对于开发者的吸引力如何?JAXenter对于众多的Java用户进行了调查,并收到了近300个反馈。

Java 10推

根据反馈结果显示,大部分开发者(82%)还在使用Java 8,8%的用户在使用Java 9,还有7%的用户在使用Java 7。当然,这也并不能说明Java 9不好,毕竟一个新事物的出现总要给使用者留出足够的时间。OpenJDK董事会主席兼Oracle Java平台小组开发副总裁Georges Saab 曾表示:Java 9的增长速度虽然不如Java 8,但是与其他版本并无差异。

“你是否会抛弃Java 8或Java 9,奔向Java 10呢?”对此,很多网友也给出了自己的意见。Markus Eisele称,我已经使用了一段时间测试版了,我希望大家也能够尽快上手,毕竟发现bug也是一件造福开发者和社区的事情。大多数程序员的想法是个人项目会考虑迁移到Java 10上,但是客户和企业项目在短时间内不会迁移到Java 10上。

文末小调查,你现在在用Java的哪个版本?

你现在在用Java的哪个版本? (多选)
0
0%
Java 10
0
0%
Java 9
0
0%
Java 8
0
0%
Java 7
0
0%
Java 6
0
0%
Java 5
0
0%
其它
投票

转载地址:http://hwwxa.baihongyu.com/

你可能感兴趣的文章
【高级数据类型】- 4.字典类型
查看>>
Myeclipse操作
查看>>
TextView动态设置图片
查看>>
Linux常用命令
查看>>
【83行代码获奖代码】高中生@青藤木子 耗费一周给妈妈编写了一款语音识别APP...
查看>>
安装PHP5、安装PHP7
查看>>
QuickBI助你成为分析师——搞定数据源
查看>>
关于vue路由跳转页面带参数方法总结
查看>>
推荐一个以动画效果显示github提交记录的黑科技工具:Gource
查看>>
数组的遍历及数组的去重
查看>>
轻量级内存计算引擎
查看>>
利用Rancher1.6部署K8s测试环境、开发环境
查看>>
Java反射在JVM的实现
查看>>
Google Java Style 中文版
查看>>
还在为测试发愁?10 个开源的压力/负载测试工具
查看>>
硬盘的原理以及SQL Server如何利用硬盘原理减少IO
查看>>
SpringMVC源码总结(九)HandlerMethodArgumentResolver介绍
查看>>
BAT等公司高薪招聘Android开发面试题目集锦
查看>>
SQL server 数据库的表的创建与使用T-SQL语句操控数据表
查看>>
你的孩子将来拿什么来跟人工智能竞争?
查看>>