Java教程

【学习打卡】第5天 java函数式编程

本文主要是介绍【学习打卡】第5天 java函数式编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

第一模块

课程名称:JAVA 函数式编程

章节名称:1-1 ~ 1-3

讲师姓名:接灰的电子产品


第二模块

内容概述:

1-1 ~ 1-3 这三个章节主要介绍了啥是函数式编程,为啥会出现函数式编程,函数式编程的出现解决了啥问题,相比于匿名内部类他的优点是啥。函数式编程的特点:高阶函数、纯函数、lamda表达式等。

第三模块

学习心得:

通过本课程的学习使我系统的掌握了java函数式编程的知识,知道了函数式接口的判断条件(一个接口有且只有一个未实现的非静态方法,这种接口才叫函数式接口)、方法引用(lamda表达式的简写),知道了编程风格的演进,在日常开发中引用函数式编程。下面附上学习笔记:

1-1 课程介绍

java11 是一个官方推荐的长期维护版本


课程内容:

https://img2.sycdn.imooc.com/62f27eff0001e9ac06670537.jpg


1-2 函数式编程介绍

java 8 9 10 11

11 之后变成了每半年升级一次


啥是函数式编程:

函数式编程中函数会作为一等公民而存在,可以将函数作为一个值进行传递。

是一种编程范式,是一种声明式的编程形式;比起【指令式编程】函数编程更强调程序执行的结果而不是执行的过程,推崇使用简单的执行单元来使计算结果不断递进,逐层推导出复杂的运算结果,而不是像【指令式编程】一样设计出一个复杂的过程。

在java中函数式编程指的就是lamda表达式(箭头函数)、流、函数式接口、方法引用

eg:

https://img1.sycdn.imooc.com/62f27f0e000155cf06970194.jpg

下一步的输入依赖上一步的结果,而不是一个中间的状态


函数式带来的好处:

让编程变的更简单,更语义化


代码简化实例:

https://img1.sycdn.imooc.com/62f27f1c0001c41707140457.jpg

https://img3.sycdn.imooc.com/62f27f2f000103d207160467.jpg


匿名内部类写法存在的问题:

可读性太差、写法不好看(代码像有个大肚子,不好看)

所以,引入函数式编程,从而完美解决上面的问题!!!


指令式编程 VS 函数式编程 对比实例:

https://img3.sycdn.imooc.com/62f27f360001803604830145.jpg

指令式编程:

https://img1.sycdn.imooc.com/62f27f3e00011f9105560457.jpg


函数式编程:

https://img3.sycdn.imooc.com/62f27f4400013f9606090231.jpg

可以发现:代码更专注结果,让代码的语义直奔结果而去!!!

从而大大提高代码的可读性!!!


1-3 函数式编程的特点

这个特点是所有函数式编程语言都有的,并不仅仅只是java!!!


特点:1

https://img1.sycdn.imooc.com/62f27f4d0001894107200222.jpg

eg:

https://img3.sycdn.imooc.com/62f27f5400011f0907350200.jpg


特点:2

高阶函数:函数的参数可以是一个/多个函数;函数的返回值也可以是一个函数

eg:

https://img1.sycdn.imooc.com/62f27f7000018cbe06310696.jpg


特点:3

Lamda表达式(箭头函数)

https://img1.sycdn.imooc.com/62f27f790001b80e06940188.jpg

能看懂方法引用会使用常用的方法引用就ok了


常用方法引用举例:

https://img1.sycdn.imooc.com/62f27f7f0001742307310238.jpg

小技巧:

在能使用方法引用的时候idea会用【黄色波浪线】提示我们,这时我们按照提示改造一些就好了!!!

eg:

https://img3.sycdn.imooc.com/62f27f860001f65906610354.jpg


java的函数式接口:

有且只有一个没有实现的非静态方法的接口,才叫函数式接口

(这个接口只有一个未实现的方法,且非静态)

https://img3.sycdn.imooc.com/62f27f900001d42407340518.jpg

内置的函数式接口(JDK提供的):

https://img3.sycdn.imooc.com/62f27f9800018cb707180322.jpg


函数最大的特点就是可以进行组合:

通过一些运算符可以将函数串联起来,形成更丰富的效果!!!

通过【一系列的简单运算】,可以形成一个复杂的运行结果!!!


java提供的一些基本函数组合方式:

https://img1.sycdn.imooc.com/62f27fa000010d7a07250237.jpg


第四模块

学习截图:

https://img4.sycdn.imooc.com/62f27d760001f39507730214.jpg



这篇关于【学习打卡】第5天 java函数式编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!