现在 Java 9 和 10 都已经发布了, 根据 Oracle 给出的半年一个版本的约定, 没有多久 Java 11 也将和大家见面. 那么问题来了, 现在使用 Java 8 的程序员更愿意迁移到这三个版本的哪个版本呢?
之前, 我们在Java 10 无跳票发布, 主推的新特性引争议的文章中做了一个小的调查, 主要是调查现在的 Java 程序员都在使用哪个版本的 Java? 根据调查结果, 绝大部分的程序员都在使用 Java 8.
无独有偶, 国外的一家媒体也做了同样的调查, 但奇妙的是双方调查结果大致相同, 国外的 Java 程序员也是更多的在使用 Java 8. 现在 Java 9 和 10 都已经发布了, 根据 Oracle 给出的半年一个版本的约定, 没有多久 Java 11 也将和大家见面. 那么问题来了, 现在使用 Java 8 的程序员更愿意迁移到这三个版本的哪个版本呢?
Java 9
Java 9 虽然是三个备选选项中发布最早的版本, 并且 OpenJDK 董事会主席兼 Oracle Java 平台小组开发副总裁 Georges Saab 也亲自下场背书,"Java 9 的增长速度虽然不如 Java 8, 但是与其他版本并无差异." 但是, 程序员却止不住对迁移到 Java 9 的吐槽. 点击查看 Java9 新特性实战.
有程序员表示, Java 9 中模块系统的一个问题是一个包必须完全包含在一个模块中. 虽然这听起来是个好主意, 但实际上在客户端和服务端的代码中都会有相同的包, 这打破了模块系统, 需要程序员进行重大重构. 同时也有程序员表示常用的库和工具没有完全支持 Java 9.
Java 10
Java 10 是一个刚刚发布的版本, 现在要求使用这个版本的用户达到多少, 确实还有些不到时候. 关于 Java 10 的新功能, 可以参考Java 10 无跳票发布, 主推的新特性引争议, 关于 Java 10 是否值得迁移, 可以参考Java 10 值得迁移吗? 听听技术大牛的建议. 点击查看 Java10 新特性实战.
Java 11
Java 11 虽然还没有发布, 但是 Java 11 的路线图已被相关媒体透露出来. Java 11 将会增加一些新功能, 更重要的是它将移除一些功能.
据悉 JDK 11 只设置了三个新功能, 包括 Epsilon 垃圾收集器被称为 "no-op" 收集器, 将处理内存分配而不实施任何实际的内存回收机制; lambda 参数的局部变量语法, 应该将隐式类型表达式中的形式参数声明的语法与局部变量声明的语法对齐; Java 类文件格式将被扩展为支持一个新的常量池形式 CONSTANT_Dynamic. 点击查看 Java11 新特性详解.
那么 Java 11 将要摒弃哪些东西呢? Java EE 和 CORBA 模块在 Java SE 9 中已弃用, Java 11 意图将它们删除. Oracle 表示在 Java SE 或 JDK 中不再需要借助第三方站点提供的独立版本的 Java EE 技术.
来源: http://developer.51cto.com/art/201807/577691.htm