mark reinhold_Reinhold主张通过Oracle Code One主题演讲将纤维添加到Java饮食中

mark reinhold

在去年的JavaOne上,Java Platform Group的首席架构师Mark Reinhold介绍了即将发布的快速发布节奏,其中每六个月将生产一个新版本的Java。 发行列车将始终按时离开车站。 如果计划中的功能尚未准备就绪,则必须赶上下一个旅程。 这是一个雄心勃勃的承诺,尤其是考虑到Java 8和Java 9的发布相隔三年零六个月的事实。

但是,尽管雄心勃勃,该计划还是顺利进行了。 自最初的声明以来已经过去了一年,在Oracle Code One上的Java语言主题演讲中,您可以说,对于诺言得以兑现这一事实,即使不是微妙的夸耀,我们也感到有些自豪。 Java 10和Java 11均按计划于2018年3月和9月发布。

“请对Java 9保持沉默,这是最后一次大规模JDK发布。” -Java平台组首席架构师Mark Reinhold

Reinhold仅简要讨论了2018年版本中引入的一些新功能,特别强调了以下事实:快速版本甚至包括重大的语言更改,即包含var关键字 。 Reinhold表示:“ Java 10于2018年3月按时交付,它仅包含12个JEP,但这些都不是小事。” “而Java 11才在几周前发布。 它包含17个JEP以及许多错误修复和增强功能。”

但是您可以说,Reinhold最想谈论的是与Java的未来有关的新功能和设施,它很好地映射了听众所要听到的内容。 Reinhold特别强调了四个项目,即Amber,Loom,Panama和Valhalla。

琥珀计划

据莱因霍尔德,项目琥珀是所有关于合理精简语言仪式。 在这个机器学习和数据驱动微服务的新时代,对于开发人员而言,能够通过其代码清晰,简洁地表达自己至关重要。 Amber项目试图以比简单地模板化代码更有意义的方式解决这个问题。

Reinhold在他的主题演讲中进行了一系列实时编码,展示了以下三个Project Amber功能:

  1. 局部变量类型推断
  2. 不需要转义序列的原始字符串文字,可以在JDK 12早期访问版本中作为预览功能使用
  3. 使用枚举和类型推断来切换表达式,这将增强基于案例的条件逻辑

织机项目

在Java中使用线程一直以来都是一团糟。 从无用的优先级设置到无意义的ThreadGroup,古老的API留下了很大的改进空间。 “线有很多包,,”莱因霍尔德说。 “他们有很多在现代世界中没有意义的东西。 实际上,它们在引入时有很多没有意义的东西。”

Reinhold在演示Project Loom的最新版本时,展示了使用Fibers实现并发线程有多么容易,这使每一个在I / O阻塞和并发问题上苦苦挣扎的软件开发人员都感到非常高兴。 这个新的轻量级线程结构的完整实现似乎只有一两个版本。

巴拿马计划

巴拿马是连接北美和南美的地峡,同时也提供了连接大西洋和太平洋的运河。 除此之外,还有一个有关将用C ++和Go之类的语言编写的本机代码与JVM上运行的项目连接的项目。 巴拿马致力于改善本机代码,外部数据和Java之间的联系。

“很多人都知道Java Native Interface JNI的痛苦,” Reinhold说。 巴拿马计划承诺将使与其他语言编写的库的集成不仅容易,而且能够在令人沮丧的JNI桥上显着提高性能。

瓦尔哈拉计划

众所周知,使用Java进行编码的人都不会以线性方式扩展语言。 JDK可以扩展,这就是为什么Scala和Kotlin之类的语言如此流行的原因。 但是,Java使用指针和可变数据的方式意味着在负载沉重的情况下向应用程序抛出两倍的资源将不会导致吞吐量几乎翻倍。 但是所有这些都将改变。

“今天的处理器与1995年相比有很大的不同。高速缓存未命中的成本增加了200倍,在某些情况下增加了1000倍。处理器的速度提高了,但是光速却没有。” -Java平台组首席架构师Mark Reinhold

Valhalla项目引入了值类型,这是一种允许在运行时更有效地管理Java程序使用的数据的机制。 值类型是没有身份的纯数据聚合。 在运行时,可以将其数据树展平为字节码煎饼。 当Valhalla项目最终并入JDK后,整个性能格局将发生变化。

“追逐指针的成本很高,” Reinhold说。 对象具有标识,可以将它们附加到同步监视器,并且它们具有内部状态。 当您的应用程序(例如大数据系统或人工神经网络)创建大量对象时,对性能的影响可能很大。

像所有好的魔术一样,瓦尔哈拉计划(Project Valhalla)非常简单。 它只需要将一个关键字value添加到类声明中,这个小的添加就可以完全更改实例数据的管理。 当然,value关键字的使用也有一些小的警告,但这是可以预期的。 在现场编码演示中,Reinhold向执行矩阵计算的类中添加了value关键字,其结果是每个周期执行的指令几乎增加了三倍,并且在内存分配方式和垃圾回收例程的行为方式上有了显着变化。 。

Java的未来在存储中拥有许多令人印象深刻的改进,这些改进将使编程更容易,我们创建的应用程序也更快。 而关于新的快速发布节奏的妙处在于,在使用它们之前,我们不必等待所有这些事情完成。 功能完成后,它们将逐步进入即将到来的发行周期,而其中许多功能仅相距一个或两个发行周期。

翻译自: https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/Reinhold-advocates-adding-fiber-to-your-Java-diet-at-Oracle-Code-One-keynote

mark reinhold

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值