Java二十一篇:Java8



Java二十一篇:Java8

圣诞节快乐


大家好,我是小刘!

函数式编程

众所周知,JDK8引入了函数式编程。什么是函数式编程呢?为何需要函数式编程呢?

认知决定高度。首先函数式编程是与面向对象编程一个层级的概念。

任何Java程序员都不可能不知道面向对象编程OOP。OOP的口号是“万物皆对象”。什么是对象呢?就是现实中一个东西在编程领域的投射。对象有属性,有方法。属性表示数据,方法表示行为。对象可以用来表示任何事物,非常强大。既然如此,为何又需要函数式编程呢?

什么是函数

函数式编程来自数学。有点(gaozhong)数学功底的你一定不会忘记这个东东:

Java二十一篇:Java8
img

数学中的函数表示的是什么呢?其实就是一个计算过程。编程领域也是一样的, 函数表示了一个计算过程,比如,加减乘除,取余等等。就是我们java的方法的作用。

你肯定要问,那java中有方法了啊,为何又弄个什么函数式编程出来呢?问题在于,java中的方法是“二等公民”,它只能依附于对象存在,而不能独立存在。

JS中的函数与Java中的方法比较

这方面我们可以把java与js放在一起比较。在js中,函数是一等公民,你可以直接声明函数,使用函数。如下例所示。

Stream<BigInteger> naturals = createNaturalStream(); // 不计算
Stream<BigInteger> s2 = naturals.map(BigInteger::multiply); // 不计算
Stream<BigInteger> s3 = s2.limit(100); // 不计算
s3.forEach(System.out::println); // 计算

惰性计算的特点是:一个Stream转换为另一个Stream时,实际上只存储了转换规则,并没有任何计算发生。

小结

1.JDK8函数式编程提供了一种直接封装函数的方式,即提供了一系列预定义的Function接口,提供了封装函数所需的功能。并通过lambda表达式简化了函数的编写方式。

2.Stream API的特点是:

  • Stream API提供了一套新的流式处理的抽象序列;

  • Stream API支持函数式编程和链式操作;

  • Stream可以表示无限序列,并且大多数情况下是惰性求值的。

3.Java Steam API的使用我们下一篇来介绍,掌握了Java8的这种写法之后,让我们的代码看起来更加的逻辑清楚,代码更加优雅了。

4.java8引入的新特性是为了简化代码,也是引入函数式编程融入大环境。

5.好好学习java8 的新特性,现在有一些企业都在使用java11的版本了(我们公司技就是用的java11),你不会java8的东西还不会吧!不会吧!



Java二十一篇:Java8



本篇文章来源于微信公众号: 小刘Java之路

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/11180.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!