Java没有创新了吗?Java 13提供可提高生产率和效率的功能
Java没有创新了吗?
在其CodeOne会议上,Oracle解释了Java SE 13正式发布后Java的快速发布周期如何带来创新。
在过去的二十多年中,Java编程语言新版本的开发速度相对较慢,仅每隔几年就会进行重大更新。甲骨文在2018年推出了一项新的发布策略,如今这一切都发生了变化,现在该策略现在每年可以看到多个Java版本,包括本周早些时候发布的版本。
在9月16日与OpenWorld共同举办的CodeOne会议上,甲骨文宣布Java SE 13(JDK 13)的全面上市,为开发人员提供了可以提高生产率和效率的新功能。在CodeOne主题演讲中,Oracle Java语言架构师Brian Goetz概述了Java在最近几年取得的进展,并强调了Java 13引入的新功能。
Goetz说:“起初,很多人对快速发布的节奏持怀疑态度,因为我们很难像Java这样大的船能迅速变大。” “甚至有人担心Java 10和Java 11可能根本没有功能,并且往后看,很难夸大快速发布节奏已经带来的重大变化。”
Goetz说,每年发布多个版本意味着可以将更多功能交付给开发人员。不过,也许更重要的是现在如何设计功能-在较小的部分中利用发布周期。新周期的一个缺点是,开发人员和最终用户并不总是清楚为什么以及何时需要升级。
Goetz说:“在旧世界中,当我们每隔几年发布大量版本,而这些较大的版本往往具有较大的功能时,就会有足够的升级动力。” “现在,现实是,我们将来不会看到很多大型功能,这不是因为我们没有创新,而是因为这些大型功能将分解为较小的功能并交付使用分阶段进行。”
Java 13
新的Java 13更新是该版本的一个很好的示例,该版本没有大量的新功能,但是随着功能的成熟,为开发人员提供了增量改进。
Java 13的新功能中有一项称为动态CDS(类数据共享)的功能。根据Java增强建议350(JEP 350),该功能的主要目标是提高应用程序类数据共享(AppCDS)的可用性,并消除了用户进行试运行以为每个应用程序创建类列表的需求。
JEP 351在Java 13中定义了一项新功能,使程序可以取消提交未使用的内存。该功能通过将未使用的堆内存返回给操作系统来改善内存管理。
Goetz在主题演讲中概述的Java 13的预览功能之一是JEP 355,它是一种样式优化功能,称为文本块。
他谈到文本块时说:“这不是一个特别复杂的功能。” “但这在日常代码中有很大的不同。”
根据Goetz的说法,没有文本块,如果开发人员想要将HTML Web代码引入Java,则需要使用一些额外的步骤和代码字符串,这些步骤既混乱又容易出错。文本块的JEP详细信息指出,它们的目标是增强Java程序中字符串的可读性,这些Java程序表示使用非Java语言编写的代码。
Java 14及更高版本
尽管每个Java版本都具有新功能,但是Oracle以不同的代号名称对许多主要的开发工作进行了分组,这将引导Java 14及更高版本中的功能开发。
大型项目之一是Amber项目,该项目全部与面向生产力的功能有关。Valhalla项目正在不断改进Java虚拟机。而Project Loom就是要在Java之上支持新的编程模型。
Goetz说:“对于Java来说,这是一个美好的时光。” “我们交付速度更快,每个版本中都有有用的功能,并且面向未来的管道比以往任何时候都更好。”
其实大家没有必要过于关注版本的变化,因为版本变化可能不会带来大的更新和特性。
日积月累,相对比较旧的版本也会有很大的更新和特性,对比一下,java13 对于 java8来说有很多大的功能和特性更新。
现在oracle的java版本策略是快速发布版本,小的功能的更新能快速发布新版让用户体验到,所以大家多关注Jave每次版本更新,以发现和尝试使用对自己有用的功能。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
了解Java线程优先级,更要知道对应操作系统的优先级,不然会踩坑
Java 多线程系列第 6 篇。 这篇我们来看看 Java 线程的优先级。 Java 线程优先级 Thread 类中,使用如下属性来代表优先级。 private int priority; 我们可以通过 setPriority(int newPriority) 来设置新的优先级,通过 getPriority() 来获取线程的优先级。 有些资料通过下面的例子就得出了一个结论:Java 线程默认优先级是 5。 public static void main(String[] args) { Thread thread = new Thread(); System.out.println(thread.getPriority()); } // 打印结果:5 其实这是大错特错的,只是看到了表面,看看下面的例子,我们把当前线程的优先级改为 4,发现子线程 thread 的优先级也是 4。 public static void main(String[] args) { Thread.currentThread().setPriority(4); Thread thread = new Threa...
- 下一篇
使用K8s遇难题?Istio来帮您!
如果你正在使用容器,特别是Kubernetes,那么你应该也听说过Istio。对于初学者来说,Istio是Kubernetes的服务网格(service mesh)。所谓服务网格,它是一个网络层,并且可以动态管理服务流量,然后以安全的方式进行管理。 如何充分使用Istio,这不是一篇博客文章能阐述清楚的。因此,在本文中我将介绍一些它的特性,更重要的是,你可以通过这篇文章,了解到一些方法来自动化解决某些实际问题。 Istio可以让你使用一组自定义Kubernetes资源来管理网络流量,并且可以帮助你保护和加密服务之间以及集群内外的网络流量。它全面集成了Kubernetes API,这意味着可以使用与其他Kubernetes配置完全相同的方式来定义和管理Istio设置。 权衡利弊,再做选择 如果要开始使用Istio,首先应该问自己为什么。Istio提供了一些非常有价值的功能,如金丝雀发布等,但是如果不增加一些复杂性,就无法使用它们。你还需要投入一定的时间来学习它。也就是说,如果你的情况合适使用它,你可以(并且应该)在自己的集群中谨慎且逐步地采用Istio的功能。 如果你要从头开始构建新环境...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Hadoop3单机部署,实现最简伪集群
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果