首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
第一章:函数式编程思想
1.1 概述
1.2 冗余的匿名内部类
1.3 编程思想的转换
1.4 体验 Lambda 的优雅写法
1.5 函数式编程和面向对象编程区别
第二章:Lambda 表达式
2.1 函数式接口
2.2 Lambda 表达式的语法
2.3 IDEA 中的快捷键
2.4 Lambda 表达式的练习
2.5 方法引用和构造器引用
第三章:Stream API
3.1 概述
3.2 Stream 流的操作步骤
3.3 创建 Stream
3.4 中间操作
3.5 终止操作
第四章:Optional 类
4.1 概述
4.2 创建 Optional 对象
4.3 从 Optional 容器中获取元素
4.4 Optional 的判断方法
当前位置:
首页>>
技术小册>>
Java语言基础16-JDK8 新特性
小册名称:Java语言基础16-JDK8 新特性
- 在数学中,函数(y = f(x))就是有输入量、输出量的一套计算方案,也就是“拿什么东西做什么事情”。编程中的函数,也有类似的概念,你调用我的时候,给我实参为形参赋值,然后通过运行方法体,给你一个返回结果。对于调用者来说,关注的是这个方法具备什么样的功能。相对而言,面向对象过分强调“必须通过对象的形式来做事情”,而函数式思想则尽量忽略面向对象的复杂语法-- 强调做什么,而不是以什么形式做 。 - 面向对象思想:做一件事情,找一个能解决这个事情的对象,调用对象的方法,完成事情。 - 函数式编程思想:只要能获取到结果,谁去做不重要,重视的是结果,不是过程。 - JDK 8 引入了 Lambda 表示式之后,Java 也开始支持函数式编程。 - Lambda 表达式不是 Java 最早使用的,很多语言支持很早就支持 Lambda ,例如:C++ 、C# 、Python 、Scala 等。如果有 JavaScript 或 Python 的语言基础,对理解 Lambda 表达式有很大的帮助,可以说 Lambda 表达式其实就是实现 SAM(Single Abstract Method,即接口中只能有一个抽象方法)接口的语法糖,使得 Java 也算是支持函数式编程的语言。Lambda 写得好可以极大的减少代码冗余,同时可读性也好过冗余的匿名内部类。 注意: - "语法糖"是指使用更加方便,但是原理不变的代码语法。例如在遍历集合时使用的 for-each 语法,其实 底层的实现原理仍然是迭代器,这便是“语法糖”。 - 从应用层面来讲,Java 中的 Lambda 可以被当做是匿名内部类的“语法糖”,但是二者在原理上是不同的。
上一篇:
第一章:函数式编程思想
下一篇:
1.2 冗余的匿名内部类
该分类下的相关小册推荐:
Java语言基础4-数组详解
Java语言基础14-枚举和注解
Java语言基础2-运算符
Java语言基础13-类的加载和反射
Java并发编程实战
深入拆解 Java 虚拟机
手把手带你学习SpringBoot-零基础到实战
深入理解Java虚拟机
Java性能调优实战
Java语言基础5-面向对象初级
java源码学习笔记
Java语言基础7-Java中的异常