Life Beyond Java 8
Java的新版本每六个月发布一次。 发生了什么变化,我们应该升级吗?
抽象
Java 8并不是对语言的绝佳更新吗? Lambda和流是一个巨大的变化,它有助于提高Java开发人员的生产率,并为该语言引入了一些功能性思想。 随后出现了Java 9…尽管模块系统对于某些类型的应用程序确实很有趣,但是缺乏令人兴奋的语言功能以及不确定的迁移到Java 9的痛苦程度使得许多应用程序都采取了观望的态度, 满意Java 8。
但是现在,Java每六个月有一个新版本,而Java 12突然出现了。 但是我们都仍在使用Java 8,想知道我们是否应该升级到更高版本,选择哪个版本以及升级可能会多么痛苦。
在本节中,我们将研究:
为什么要从Java 8升级,包括从Java 9、10、11和12的语言功能
如果选择升级,可能会遇到什么问题
Java 11附带的支持和许可证更改可能如何影响我们。
资源资源
更新,许可和支持
Java冠军:Java仍是免费的-这是一份非常详尽的文档,解释了许可证和支持方面的更改
Oracle:针对Java 11和更高版本的Oracle JDK版本-许可证有哪些更改; 为什么有两个Oracle JDK构建? OpenJDK构建与Oracle JDK构建相同吗?
JetBrains:在生产中使用Java 11:重要知识
红帽:不支持Oracle的Java和OpenJDK更新的未来—"……我们始终"上游优先"的政策意味着,OpenJDK 8将在关键错误和安全修复之前继续进行更新。JDK11也会发生类似的情况。"
Azul:Java更新的更新选择—Azul的选项摘要
IBM:支持Java社区
从哪里获得您的JDK
是时候超越Oracle的JDK了-这里很好地解释了所提供的不同JDK以及它们之间的区别。
采用OpenJDK
下载预构建的OpenJDK二进制文件-" AdoptOpenJDK从一组完全开源的构建脚本和基础结构中提供预构建的OpenJDK二进制文件。"
采用OpenJDK支持
下载预构建的OpenJDK二进制文件-" AdoptOpenJDK从一组完全开源的构建脚本和基础结构中提供预构建的OpenJDK二进制文件。"
采用OpenJDK支持
什么是Amazon Corretto 8?"" Amazon Corretto是Open Java Development Kit(OpenJDK)的免费,多平台,可立即投入生产的发行版"
下载Corretto 8
下载Zulu
商业支持
Oracle Java SE订阅
下载Oracle的OpenJDK(免费)JDK
下载Oracle商业JDK
Windows和Linux上对OpenJDK的商业支持
从Java 8迁移
我关于"迁移到Java 9"的视频课程可以在Safari上找到,也可以通过InformIT购买。 其中包含有关Java 9开发人员最感兴趣的Java 9功能的详细信息,以及有关如何迁移到Java 9的指南。
我为Oracle Java Magazine撰写了有关从Java 8迁移到Java 9的文章
而且,我为InfoQ写了一篇有关无痛地迁移到Java拼图模块的相关文章:一个案例研究
Java SE Oracle JDK 9迁移指南-Oracle指南
迁移到Java 11所需了解的所有知识-深入指南
从Java 8到Java 11-一些指针
将Maven项目迁移到Java 11-Maven的特定帮助。 在您可能需要的POM文件中包括一些Java 9 Magic Incantations。
将Spring Boot应用程序迁移到Java 11 —这是一个有趣的案例研究
是时候了! 迁移到Java 11 –这是另一个案例研究
特征
<但是>
Java 11
<铅>
Java 11 HTTP / 2 API教程
Java 11中的响应式HTTP / 2请求和响应
编写Java 11,Shebang和所有脚本
Java 11中的11个隐藏的宝石-对我来说,微小的API更改使我作为开发人员的生活更加轻松
Java 11字符串API附加
Java的新型Z垃圾收集器(ZGC)令人非常兴奋-" ZGC的设计目标是具有此类能力的普通未来:暂停时间短(<10ms)的多TB堆,对整体应用程序性能的影响(吞吐量的<15% )。"
Java 11和IntelliJ IDEA
<但是>
Java 10
<铅>
Java 10:局部变量类型推断
网络研讨会:IntelliJ IDEA和Java 10 —此视频和后续博客文章讨论了使用
<但是>
Java 9
<铅>
Real World Java 9 —这是我在2017年关于Java 9功能的演示
JEP 261:Java平台模块系统
模块:快速入门教程
便利工厂收集方法
jlink参考文档
Java 9 jlink在5分钟内解释
Java 9的其他新增强功能,第2部分:Milling Project Coin
使用JDK 9 Flow API进行反应式编程
JEP 238:多发行JAR文件
在IntelliJ IDEA中创建多发行版JAR文件
JEP 259:堆栈步行API
深入研究Stack-Walking API
JEP 102:流程API
JShell用户指南
关于可选的更多方法
Java 9和IntelliJ IDEA
<但是>
Java 12
<铅>
JDK 12 JEP-其中包括与垃圾收集相关的几个
JEP 325:切换表达式(预览)
Java 12和IntelliJ IDEA-IntelliJ IDEA如何通过新的开关表达式语法帮助您(IntelliJ IDEA 2019.1中提供)
Java的未来
JEP 302:Lambda残s剩饭(包括下划线表示参数)
JEP 305:模式匹配(预览)
Java数据类和Brian Goetz的Java数据类
Amber项目-" Amber项目的目标是探索和孵化较小的,面向生产力的Java语言功能"
Valhalla-这包括值类型
织机— JVM的纤维,连续性和尾部调用
性能
Java 11:JEP 331:低开销堆分析
Java 11快多少? -以G1 GC和Parallel GC为基准的案例研究
垃圾收集器
Java 9:JEP 248:G1为默认垃圾收集器
Java 10:JEP 307:用于G1的并行完整GC
Java 10:5分钟内说明对垃圾收集的改进
Java 11:JEP 318:Epsilon:无操作垃圾收集器(实验性)
Java 11:JEP 333:ZGC:可伸缩的低延迟垃圾收集器(实验性),另请参见ZGC Wiki
Java 12:JEP 189:Shenandoah:低暂停时间的垃圾收集器(实验性),另请参见Shenandoah GC Wiki
Java 12:G1的更多更新
弦乐演奏
Java 9:JEP 254:紧凑字符串
Java 9中的紧凑字符串
Java 9:JEP 280:简化字符串连接
Java中字符串的演变,以压缩字符串并增强字符串连接
其他
频率降低难度
持续交付-Jez Humble和Dave Farley
OpenJ9 JVM
还有更多Javagoodies!