Java8是Oracle收购Sun之后发布的第一个重大更新版本,必然是有很多重大的更新。

Oracle想收购Sun公司绸缪已久,可以说是处心积虑,从Eclipse(翻译为:日食,吃掉太阳Sun)编辑器就可以看的出来。

多说一点,从Java8到现在(2019年)的Java13,可以看出Oracle想要Java占据未来物联网时代,种种更新和变化早已布局物联网生态,Java虽年长(20多岁了),但仍身强力壮。

Java8最大的变化是引入了函数式编程思想,Java不再是单一的面向对象编程,开始兼容面向函数编程,具体的实现是使用interface,也可以叫做面向接口编程。

Java8的优点

  • 速度更快
    • 优化了内存结构,优化了集合框架
  • 代码更少
    • 引入Lambda,函数式编程思想
  • 便于并行
    • 提供强大的Stream API,优化多线程并行执行效率
  • 最大化减少空指针异常
    • 提供了Optional

Java8的不足

Java要保证向下兼容,20多年的生态积累导致有些雍容,略显尾大不掉的感觉,函数式编程没有发挥其最大的灵活性和优势,Oracle肯定会再后续版本Java9,Java10等等慢慢更新修复的。

Java8以后开始收费,免费版请使用OpenJDK,不用担心,Oracle JDK和Open JDK几乎无差别,一个开源使用,一个商业收费提供企业支持服务。另外Java8之后改为每6个月颁布一个小版本,每3年更新一个长支持的大版本。Java开始稳定更新,迭代。

Oracle公司的核心思想: 小步快跑,快速迭代。
该思想是Oracle整个公司的指导思想,当年Oracle数据库就是靠这个打败商业巨头IBM的Db2数据库的,故Java开始快速迭代是意料之中,不足为奇,快速迭代也更适应当代互联网的发展趋势,是好事!

Java8新特性

完整的新特性请参考官方文档,本教程只讲解最重要的新特性。

  • Lambda表达式,函数式3编程思想的体现,主要用来简化匿名内部类的写法。
  • 方法引用,一种lambda表达式的简化写法
  • Stream API,流式api,提供一种方便的对数据集合的操作方式
  • 重复注解,同一注解可以多次注解到一个类上
  • interface支持默认方法,用来给已有的lib添加新功能,为了实现jdk的向下兼容
  • 改进了类型推断,泛型推断更智能
  • 改进了方法参数反射
  • 集合框架优化,主要是优化了HasMap存储结构,增加了Stream API支持,方便操作集合数据。
  • 安全方面进行了很多优化,具体参考这里
  • 优化了Javafx,一种桌面编程的工具,如果你使用请专门查看
  • 提供了一些列工具,比如jjs,java,jdeps,javac等等
  • io和nio优化
  • jdbc优化,去掉了jdbc-odbc
  • 并发编程优化

参考资料