前段时间 Oracle 刚刚发布了 Java Development Kit 10, 还没有来得及看, 可是马上 JDK 11 就要在 6 个月后发布了
据了解, JDK 11 将移除 CORBA 和 Java EE(即 Jakarta EE) 模块, 同时也会移除 JavaFX, 因此, Java 11 在增加新特性的同时也将失去一些功能
与 JDK 10 不同, JDK 11 将成为 Java 平台标准版 Java SE 11 的参考实现 JDK 11 将在 2023 年 9 月之前从 Oracle 获得首要级别的支持, 并将支持补丁和安全警报, 直至 2026 年
目前所知的 JDK 11 新特性
Epsilon 垃圾收集器被称为 no-op 收集器, 将处理内存分配而不实施任何实际的内存回收机制 Epsilon 的使用案例包括测试性能, 内存压力和虚拟机界面它也可以用于短期工作
lambda 参数的局部变量语法, 应该将隐式类型表达式中的形式参数声明的语法与局部变量声明的语法对齐这将允许在声明隐式类型的 lambda 表达式的形式参数时使用 var
Java 类文件格式将被扩展为支持一个新的常量池形式 CONSTANT_Dynamic 目标是降低开发新形式的可实现的类文件约束的成本和中断
JDK 11 将移除的特性
Java EE 和 CORBA 模块在 Java SE 9 中已弃用, Oracle 意图在 Java 11 中将它们移除
为什么要移除 Java EE 呢? 因为随着时间的推移, Java EE 版本不断发展, 给 Java SE 的发展带来了很大的困难, 例如需要维护与 Java SE 无关的技术和跨两个 Java 版本进行维护 Oracle 表示在 Java SE 或 JDK 中将不再需要借助第三方站点提供的独立版本的 Java EE 技术
一些依赖于 JDK for Java EE API 和工具的开箱即用的应用, 将无法编译或运行另外, 将 JDK 6,7 或 8 迁移到更高版本时会出现二进制和源不兼容的问题 甲骨文表示, 受这些风险影响的开发人员可以部署替代版本的 Java EE 技术来解决
来源: https://juejin.im/entry/5abb897df265da238925c8a6