java10编程语言都有哪些新特点?

Python013

java10编程语言都有哪些新特点?,第1张

前一段时间我们曾经给大家简单介绍了关于java10的特性以及发布日期等事情。今天,我们一起来正式了解一下java10编程开发语言的新特性都有哪些,以及针对这些特性的使用方法。

Java10新特性

这次发布的Java10,新带来的特性并不多。

根据官网公开资料,共有12个JEP(JDKEnhancementProposal特性加强提议),带来以下加强功能:

JEP286,var局部变量类型推断。

JEP296,将原来用Mercurial管理的众多JDK仓库代码,合并到一个仓库中,简化开发和管理过程。

JEP304,统一的垃圾回收接口。

JEP307,G1垃圾回收器的并行完整垃圾回收,实现并行性来改善坏情况下的延迟。

JEP310,应用程序类数据(AppCDS)共享,通过跨进程共享通用类元数据来减少内存占用空间,和减少启动时间。

JEP312,ThreadLocal握手交互。在不进入到全局JVM安全点(Safepoint)的情况下,对线程执行回调。优化可以只停止单个线程,而不是停全部线程或一个都不停。

JEP313,移除JDK中附带的javah工具。可以使用javac-h代替。

JEP314,使用附加的Unicode语言标记扩展。

JEP317,能将堆内存占用分配给用户指定的备用内存设备。

JEP317,使用Graal基于Java的编译器,可以预先把Java代码编译成本地代码来提升效能。

JEP318,在OpenJDK中提供一组默认的根证书颁发机构证书。开源目前Oracle提供的的JavaSE的根证书,这样OpenJDK对开发人员使用起来更方便。

JEP322,基于时间定义的发布版本,即上述提到的发布周期。版本号为\$FEATURE.\$INTERIM.\$UPDATE.\$PATCH,分别是大版本,中间版本,升级包和补丁版本。

部分特性说明

1.var类型推断。

这个语言功能在其他一些语言(C#、JavaScript)和基于JRE的一些语言(Scala和Kotlin)中,早已被加入。

在Java语言很早就在考虑,北大青鸟云南计算机学院http://www.kmbdqn.cn/发现早在2016年正式提交了JEP286提议。后来举行了一次公开的开发工程师调查,获得多建议的是采用类似Scala的方案,“同时使用val和var”,约占一半二多的是“只使用var”,约占四分之一。后来Oracle公司经过慎重考虑,采用了只使用var关键字的方案。

随着互联网的不断发展,软件编程开发语言也有了多次的更新与升级,而今天电脑培训http://www.kmbdqn.com/就通过案例分析来了解和学习一下,java12都有哪些新特性。SwitchExpressions或者说起相关的PatternMatching特性,为我们提供了勾勒出了Java语法进化的一个趋势,将开发者从复杂繁琐的低层次抽象中逐渐解放出来,以更高层次更优雅的抽象,既降低代码量,又避免意外编程错误的出现,进而提高代码质量和开发效率。

则是很有现实意义度ShenandoahGC。它是Redhat主导开发的PauselessGC实现,从大概2013年开始研发,终于取得了重要的阶段性成果,与其他PauselessGC类似,ShenandoahGC主要目标是99.9%的暂停小于10ms,暂停与堆大小无关等。

也许了解ShenandoahGC的人比较少,业界声音比较响亮的是Oracle在JDK11中开源出来的ZGC,或者商业版本的AzulC4(ContinuouslyConcurrentCompactingCollector)。但是,笔者认为,至少目前,其实际意义大于后两者,因为:

使用ZGC的低门槛是升级到JDK11,对很多团队来说,这种版本的跳跃并不是非常低成本的事情,更何况是尚不清楚ZGC在自身业务场景中的实际表现如何。

而C4,毕竟是土豪们的选择,现实情况是,有多少公司连个几十块钱的License都不舍得

而ShenandoahGC可是有稳定的JDK8u版本发布的哦,据我所知已经有个别公司在HBase等高实时性产品中实践许久。