Java 8之外的生活

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 —此视频和后续博客文章讨论了使用var的最佳位置

  • <但是>
    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!