之前,我们在《Java 10无跳票发布,主推的新特性引争议》一文做了一个小调查,主要是调查一下现在的Java程序员使用的是哪个版本的Java?根据调查结果,绝大多数的程序员都在使用Java8。巧合的是,国外某媒体也进行了同样的调查,但令人惊奇的是,两次调查的结果却大体相同,更多的是国外的Java程序员使用Java8。现在Java9和10已经发布,按照Oracle给出的半年协议,Java11很快就会和大家见面。那么问题来了,使用Java8的程序员更愿意迁移到这三个版本中的哪个版本呢?Java9Java9是三个选项中最早发布的版本,OpenJDK董事会主席、OracleJava平台组开发副总裁GeorgesSaab也亲自背书,“虽然Java9的增长速度不与Java8一样快,与其他版本没有什么不同。”然而,程序员们对迁移到Java9的抱怨一直停不下来。点击查看Java9的新特性实战。有程序员表示,Java9中模块系统的一个问题是一个包必须完全包含在一个模块中。虽然这听起来是个好主意,但实际上在客户端和服务器代码中使用相同的包会破坏模块系统,需要程序员进行重大重构。同时也有程序员表示,常用的库和工具并不完全支持Java9。Java10Java10是一个刚刚发布的版本,现在问有多少用户使用这个版本确实来不及。Java10的新特性,请参考《Java 10无跳票发布,主推的新特性引争议》,Java10是否值得迁移,请参考《Java 10值得迁移吗?听听技术大牛的建议》。单击以查看Java10的新功能。Java11虽然Java11还没有发布,但是Java11的路线图已经被相关媒体披露。Java11将添加一些新功能,更重要的是它将删除一些功能。据悉,JDK11只设置了三个新特性,包括被称为“无操作”收集器的Epsilon垃圾收集器,它将处理内存分配而不实现任何实际的内存回收机制;lambda参数的局部变量语法,应该是隐式类型表达式中形式参数声明的语法与局部变量声明的语法对齐;Java类文件格式将被扩展以支持新的常量池形式CONSTANT_Dynamic。点击查看Java11新特性详解。那么在Java11中将弃用什么?JavaEE和CORBA模块在JavaSE9中被弃用,Java11打算将它们移除。甲骨文表示,无需依赖第三方站点在JavaSE或JDK中提供的独立版本的JavaEE技术。
