Scala 这几年大受欢迎,被贴上了颠覆性的java的标签。它的底气来源无非是函数式和面向对象的“完美结合”,以及各种“语法糖”,但其高昂的学习门槛却给了新人又一次打击。
随着Java8的发布以及Lambda特性的引入,之前的焦灼局面是否有所改变,让我们一起揭开Java函数式编程的面纱:
面向对象 VS 函数式
功能接口和 Lambda
类库升级改造(默认方法、静态方法、Stream、Optional)
Lambda 下的模式演变
Lambda 下的并发程序
用一句话概括两者的关系:面向对象编程抽象数据;函数式编程抽象了行为。
在现实世界中,数据和行为共存,程序也应该共存。幸运的是,在Java世界中,两者也开始了融合之旅。