不迈出第一步

Java 11:废除Java 8是否足够重要?

为了庆祝Java 11的发布,我们邀请了9位Java专家与他们分享最新版本的最佳和最差体验。 由于本系列旨在作为Java 11的手册,因此我们的受访者谈论了他们对Java 11的第一印象,技巧和窍门,最聪明的黑客,如果他们真的在乎Java 11,则不可避免地要比对Java 8关心的多, 至少。

该系列即将结束,但在我们向专家询问最后一个问题之前,还没有结束:您对Java 11有多大兴趣? 这听起来可能很奇怪,所以这里有一些上下文:在去年的JAX London上 ,我们与Stephen Colebourne讨论了当时的新发行节奏,以及人们为何仍使用Java 8的原因。一年又两个版本之后(Java 9发行了一个月)在采访之前),很多事情已经发生了变化,但是我们仍然在问同样的问题:最新版本是否足以使Java 8失效?

Java 8将使我们满意好几年,直到出现真正重要的东西为止。

斯蒂芬·科尔本

Java 11可以成为那个重要版本吗? 我们试图在两个月前回答这个问题,但是现在Java 11出现了 ,是时候重新讨论这个问题了。 如果您想了解我们的Java影响者对最新版本的看法,请不要错过本系列访谈 。 只是为了让您了解其中包含的内容,以下是一位受访者的名言:

借助Java 11强制模块化,这将是许多项目的第一个真正的迁移里程碑。 现在,我们在使用模块系统以及如何迁移和构建新软件方面拥有相当丰富的经验。

Markus Eisele

不要错过“ Java 11手册”系列的第一部分:

  • Java专家分享他们在Java 11中的最佳和最差的经验
  • Java 11是否在所有正确的方框中打勾?
  • 最聪明的技巧来简化Java 11导航

会见专家

Mala Gupta( @eMalaGupta )是eJavaGuru.com的创始人。 她是DelhiJUG的Java冠军,书籍作者,演讲者和联合负责人。

Josh Long( @ starbuxman )是Pivotal的Spring Developer Advocate。 他是5本书和3本畅销视频培训的作者。 他还是Java冠军。

Lukas Eder( @ lukaseder )是Data Geekery GmbH的创始人兼研发负责人,该公司是jOOQ背后的公司和Java冠军。

Matthew Gillard( @MaximumGilliard )在布里斯托尔(英国)的Oracle工作于开源,Java和无服务器/云基础架构。

Marcus Biel( @MarcusBiel )是一位演讲者,作家,JCP成员和Java Clean Code传播者。

Trisha Gee( @trisha_gee )是JetBrains的一名开发倡导者,是伦敦Java社区的重要成员和Java冠军。

Simon Ritter( @speakjava )是Azul Systems的副CTO。

Tal Weiss( @weisstal )是OverOps的CTO和联合创始人。

Stephen Colebourne( @jodastephen )是Java冠军和JavaOne摇滚明星发言人。 他在OpenGamma担任开发人员。

您是否在乎Java 11?

Mala Gupta:对于所有利益相关者来说,JDK 11是一个重要的版本。

JDK 11标志着Oracle向支持开放源代码软件迈出了里程碑式的一步。 使用JDK 11,OracleJDK在功能上将等同于OpenJDK。 例如,OpenJDK现在包括以前仅在OracleJDK中存在的功能,例如“ Flight Recorder”。

JDK 11是Java 8之后的下一个LTS(长期支持)发行版。大多数组织仍在担心其向Java 9或10(即STS(短期支持)发行版)迁移时仍在Java 8上运行其应用程序。 借助Oracle的长期支持,预计许多组织将迁移到JDK 11。

较新的垃圾收集器和内存管理的引入正在鼓励组织进一步研究并推动这一领域的发展。

我更喜欢Java 11的稳定性。

约什长 :Java的8是一个划时代的版本是有一的巨大功能。 Java 11尚未达到这个导入水平,但是我不认为这是目标,因为我们已经有半年两次发布的Java。 如果您看一下Java 9、10、11和12中的语言语法和API优点(除其他功能外,它们将支持多行字符串),我仍然不能说它与Java 8一样重要。

相反,我更喜欢此版本的稳定性。 作为Spring开发人员,有零件事让我担心,而许多小事情将使我的生产生活变得更加轻松。 Spring Initializr 将支持它。 这是一个重新平台的好地方,我衷心希望每个人都能做到。

卢卡斯·埃德(Lukas Eder):一点 也不。 JDK 9 – 11对我来说并不是很有趣。 如前所述,由于我在jOOQ上的工作性质,我主要关心Java语言功能,而不是JVM或JDK功能。 话虽如此,我非常期待JDK 12 ,JEP 325和JEP 326(是的!)!

马修·吉拉德(Matthew Gillard): 是的,我愿意。 我认为这肯定是一个非常重要的版本。 我在Java活动中与人们交谈的经验是,几乎没有人在生产中采用9或10,但是许多人希望将其从8升级到11。因此,在9、10和11中引入的好处将得到广泛传播。最后使用。

特别是,JVM在容器中的行为方式有了许多改进,并提供了一些不错的语言功能–本地变量类型推断可能是最引人注目的–核心库的改进,例如新的HTTP客户端,使程序员可以真正实现现代基于CompletableFutures的编程风格。

Marcus Biel: 毫无疑问,它是比Java 8小得多的发行版,但是Java 11是朝着正确方向迈出的又一贯(婴儿)步骤。 例如,JEP 181为将来的Java发行版提供了将来的增强功能。

现在必须回到Java 8时,我会想念Java 9、10和11中引入的所有那些小功能。

Trisha Gee: 是的,我希望团队/应用程序从Java 8迁移到11。去年我一直使用9、10,现在使用11(或者更多,因为我使用的是9的早期访问版本)我已经习惯了一些小的便利:集合的工厂方法(Java 9); var(Java 10); 不可变的集合(Java 10,加上Java 10中的Collectors.toUnmodifiableList等); 以及Streams API和Optional上的一些不错的小方法只会使8中引入的一些事情变得更容易使用。 现在必须回到Java 8时,我会错过所有这些小功能。

Simon Ritter: 我很关心JDK 11,因为它是六个月发布计划中的第一个新的长期支持(LTS)版本。 我怀疑大多数Java用户将从JDK 8迁移到JDK 11,因为Oracle以及其他诸如Azul和AdoptOpenJDK的用户将对此版本提供扩展的支持。

还请参见 : “开发人员会将Java 11视为他们在Java 8中使用的功能的更好,更清洁的实现”

Tal Weiss: 肯定的。 我很高兴看到新的实验性ZGC实施正在运行,即使对于非常大的堆,也有望实现低延迟垃圾回收。 还有其他有趣的新功能。 另一方面,我认为就发行规模而言,Java 11比Java 8或Java 9等以前的发行版要小得多,但这是一件好事。

Stephen Colebourne: 是的。 Java 11是重要的发行版,因为从长期来看,它将被视为稳定的。 就像Java 8一样,它将通过OpenJDK接收Red Hat,IBM,Azul和其他公司的安全更新很多年。

如果您由于Java 9的困难而一直拖延时间,那么Java 11发行版将是您的目标。 请记住,为了超越Java 9,无需模块化代码!

Java 11回顾

Trish Gee:由于Java 11的更改,我正在使用的某些旧版本库不再可用。 我发现例如缺少类文件的运行时错误问题。 有两件事使我的生活更轻松:确保我使用的是最新版本的依赖项; 并为已移出核心库(在我的情况下为JAXB)的API添加其他依赖项。

Simon Ritter:由于JDK 11中开发人员功能的数量相对较少,我尝试过的任何事情都没有给我带来任何问题。 新功能的文档非常好,因此我尝试过的所有东西都在第一次尝试时就起作用了。

迄今为止发现的最聪明的黑客

马修·吉拉德(Matthew Gillard):带有shebang行的单一源文件启动器非常简洁-我将其与新的EpsilonGC结合使用来编写用例脚本:

#!/opt/jdk/jdk-11/bin/java --source 11 -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC
public class MyClass {
public static void main(String... args){
...

Tal Weiss:我真的很喜欢JEP 330的实现,该实现允许通过命令行使用Shebang语法非常快速地对Java代码进行原型制作,而无需经历构建链。 我认为这对于通用脚本编写和语言学习也非常方便。

优点缺点

优点

+使用HTTP客户端处理非阻塞异步代码

+对lambda参数使用带局部变量的注释

+ TLS 1.3 真正快速的周转集成

+对ChaCha20和Poly1305加密算法的新支持

+比Java 9和10更好的启动性能

+ 字符串API增强功能(重复,isBlank,条带,行)非常酷

+过时的功能被抛弃

+升级时影响较小

+使用启动单文件源代码程序

+对谓词接口的微小更改,其中添加了not()静态方法

缺点

–在不编译的情况下启动单个源代码程序会造成混乱

–对程序员几乎没有

–根据此版本中不推荐使用的位,可能给这些用户带来不便

–已从JDK 11中的JDK中删除了JAXB。这在首次设置jOOQ时会给jOOQ用户带来一些额外的配置麻烦

–启动仍可与Java 8媲美

Java 11的17个功能

为了刷新您的记忆,JDK 11包含以下功能 :

引入nests ,这是一种与Java编程语言中嵌套类型的现有概念一致的访问控制上下文。 嵌套允许类在逻辑上属于同一代码实体,但被编译为不同的类文件,可以访问彼此的私有成员,而无需编译器插入可访问性增强的桥接方法。

309:

扩展Java类文件格式以支持新的常量池形式CONSTANT_Dynamic 。 加载CONSTANT_Dynamic会将创建委托委派给bootstrap方法,就像将调用动态调用站点链接到bootstrap方法一样。

315:

改进现有的字符串和数组内部函数,并在AArch64处理器上为java.lang.Math sin,cos和log函数实现新的内部函数。

318:

开发一个可以处理内存分配但不实现任何实际内存回收机制的GC。 一旦可用的Java堆耗尽,JVM将关闭。

320:

从Java SE平台和JDK中删除Java EE和CORBA模块。 这些模块已在Java SE 9中弃用,并声明要在将来的版本中删除它们。

321:

通过JEP 110标准化JDK 9中引入的,在JDK 10中更新的已孵化的 HTTP客户端API。

323:

在声明隐式类型的lambda表达式的形式参数时,允许使用var

324:

如RFC 7748中所述,使用Curve25519和Curve448实现密钥协议。

327:

升级现有平台API以支持Unicode标准 10.0版 。

328:

提供低开销的数据收集框架,以对Java应用程序和HotSpot JVM进行故障排除。

329:

实现RFC 7539中指定的ChaCha20和ChaCha20-Poly1305密码。 ChaCha20是一种相对较新的流密码,可以代替较旧的,不安全的RC4流密码。

330:

增强Java启动器以运行作为Java源代码的单个文件提供的程序,包括通过“ shebang”文件和相关技术从脚本内部使用该程序。

331:

提供一种可通过JVMTI访问的Java堆分配采样的低开销方法。

332:

实现传输层安全性(TLS)协议的1.3版。

333:

Z垃圾收集器(也称为ZGC)是可伸缩的低延迟垃圾收集器。

335:

弃用Nashorn JavaScript脚本引擎和API,以及jjs工具,以在将来的发行版中删除它们。

336:

java.util.jar弃用pack200unpack200工具以及Pack200 API。

翻译自: https://jaxenter.com/manual-java-11-series-part-4-150512.html

不迈出第一步

不迈出第一步_Java 11手册:新Java发布系列迈出的一小步,Java 8用户迈出了一大步...相关推荐

  1. Committer 蔡正昕专访:勇敢迈出第一步,做开源没有那么难

    关于 Apache Pulsar Apache Pulsar 是 Apache 软件基金会顶级项目,是下一代云原生分布式消息流平台,集消息.存储.轻量化函数式计算为一体,采用计算与存储分离架构设计,支 ...

  2. 不迈出第一步,永远到达不了终点

    文章目录 初见 画面 习惯 趋利避害 改进 熟能生巧 感恩 初见 今天无意中在刷朋友圈的时候,看见了标题中的那一句话:不迈出第一步,永远到达不了重点.看见这句话,感觉内心被揪了一下.脑海中也浮现了一些 ...

  3. 内含JAVA简单概括和JAVA所需安装的软件和详细教程,想学习JAVA无从下手,这篇文章带你迈出第一步

    本文大致概括了JAVA编程语言的简史和特点,主要介绍了JAVA开发环境安装,涉及JDK,Sublime Text IntelliJ IDEA三个软件的简单介绍,安装和使用,最后编写了第一个JAVA代码 ...

  4. 不迈出第一步,不去尝试,你永远不知道能否成功

    成功的故事固然荡气回肠,失败的故事也能千回百转,但是如果你连第一步都不愿迈出,不去追求与偿试,那么你永完不会知道成功或者失败的原因是什么,人生一辈子也就三万多天,如果每天糊里糊涂的过去了,若干年后可能 ...

  5. 马斯克新梦想迈出第一步!首条地下高速隧道即将完工,12月免费体验

    雷刚 发自 上地以南  量子位 报道 | 公众号 QbitAI 要不是给出了具体时间,谁还敢相信马斯克--的Twitter? 之前,敢想敢干的伊隆·马斯克,发起了一家"入地"公司B ...

  6. 码出高效:java开发手册_Java 11手册:最聪明的技巧来简化Java 11导航

    码出高效:java开发手册 Java 11:提示和技巧,日常陷阱及更多 为了庆祝Java 11的发布,我们邀请了八位Java专家与他们分享最新版本的最佳和最差体验. 由于本系列旨在作为Java 11的 ...

  7. get a foot in the door 迈出第一步

    美国的商品推销员在不很久以前还是挨家挨户地去推销商品,例如吸尘机.厨房用品.百科全书和圣经等.当一位家庭主妇听到敲门声,把门打开的时候,精明能干的推销员就会把一只脚先伸到门里边,这样可以避免在介绍商品 ...

  8. 码出高效:java开发手册_Java 11手册:Java专家分享他们在Java 11方面的最佳和最差的经验

    码出高效:java开发手册 Java 10标志着Java生态系统新时代的开始,但最新版本证明仍有一些里程碑可言. Java 11是Oracle新的六个月周期中的第一个LTS版本. 您可以在此处下载Ja ...

  9. 勇敢突破,迈出第一步。

    我是一名来自河南省洛阳市洛阳师范学院软件工程专业的大二学生,很荣幸能加入到CSDN这个大家庭,与各位大佬们一起学习和成长. 作为一名软件工程专业的学生,我对编程的欲望愈加浓厚.我想学好编程之后去杭州发 ...

最新文章

  1. oracle对sga统计信息不对,关于oracle sga设置的总结,很经典--转
  2. AI and logistics Patent
  3. PHP简单操作Excel
  4. 用开源项目PhotoView实现图片的双指缩放和双击放大缩小
  5. ipfs如何查找一个文件的_如何用 1 分钟遍历一个 100TB 的文件?
  6. 云服务器建站原理_云服务器cvm与建站主机之间的区别
  7. 云计算实战系列-磁盘阵列
  8. linux var log管理,Linux下的syslog和/var/log
  9. k进制正整数的对k-1取余与按位取余
  10. 【2018滴滴】寻找丑数
  11. linux下查看硬盘型号、大小等信息(含Raid)
  12. Ubuntu下安装小企鹅fcitx输入法
  13. Aspack壳代码分析
  14. 软件设计师(3)-->数据库
  15. 学计算机单身率为什么高,单身率特别高的大学专业大全 2020哪些专业单身率高...
  16. Python Day 67 Dango框架图解(总结)、Wsgiref和uwsgi、前后端传输数据的编码格式、From表单和Ajax方式在前端往后端发送文件、补充一下页面清缓存...
  17. Pycharm2018.2永久破解
  18. window 删除文件报错显示被程序占用 强制删除被占用的文件
  19. 数据结构—— 家谱处理
  20. 学业水平考试b能上985吗_会考c能上985吗 985211对会考的要求

热门文章

  1. background:url(../images/list01.png) no-repeat 0 center;是什么意思
  2. 追悼住在天国里的外公
  3. 【C++ 6.析构函数和拷贝构造函数】
  4. sql2000备份数据库文件如何还原到sql2008数据库中
  5. 为何计算机地址不是31位,【2人回答】为什么我安装32位的CAD2008不能安装我64位的电脑,不是说64位电脑都可以安装31位与64位软件吗?-3D溜溜网...
  6. CVTE笔试(2021年暑期实习)
  7. 如何(及时)清除电脑c盘的缓存文件
  8. xplorer 使用_替换Explorer.exe-使用xplorer2和FAR返回Norton Commander
  9. Sketchup建模和渲染是否能取代3dsMax
  10. CSS---Chrome 102:新增两个 HTML 属性(-^-)