导图社区 java8实战
Java8实战学习,Java8是Java改动较大的一个版本,为了增强Java自身竞争力而改版的,意义重大,对于Java程序员而言,Java8的特性是一把新型武器,掌握好了可以对Java的理解更加深刻,提升编程水平,同时也提升个人竞争力。
关于香港一日游攻略的知识梳理、其中包括了出发前准备、证件需要身份中。港澳通行证、银行卡、黑码申请、微信小程序搜索:海关旅客指尖服务等等。
MYSQL的思维导图,MySQL的客户端/服务器架构分别有mysqlE的安装、可执行文件、服务器的启动、启动MySQL客户端程序、客户端与服务器连接的过程、服务器处理客户端请求,一起来学习吧。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
java8实战学习
为什么要学习
java8是java改动较大的一个版本,也是为了增强java的自身竞争力而改版的,意义重大。对于java程序员而言,java8的特性是一把新型的武器,掌握好了可以对java的理解更加的深刻,提升编程水平,同时也提升个人竞争力
学习目标(阶段性)
1. 使用java8
1.1 了解java8的主要变化(lambda表达式,方法引用,流和默认方法)
lambda表达式
是什么
匿名函数
为什么需要
让语法更加简单
优缺点
不需要为只用一次的方法写定义
有什么与lambda表达式是类似的
方法引用
将函数可以以参数的形式传递
stream API就是构建在通过传递代码是操作行为实现参数化的思想上的
是实现stream的基石
扩展程序员的工具库,让编程更加容易
有什么与l方法引用是类似的
与java中传递值(对象)相似
流
一系列数据项
可以帮助程序员在更高的抽象层次写java8程序
免费的并行
优点
可以在更高的抽象层次写java8程序
缺点
需要转换编程的思想
有什么与l流是类似的
unix命令中的通道的概念
默认方法
接口中不用实现类实现的方法
可以帮助接口设计者,在后来给接口添加新方法的时候,不用让之前实现这个接口的实现类都必须实现这个方法
帮助接口设计者更加灵活的设计接口
有什么与默认方法是类似的
优点类似类的继承
为什么变化?
1. 稳定java在生态中的地位
2. 提供给java程序员更多的编程工具和概念
1.2 行为参数化
什么是行为参数化
行为参数化就是将一个函数以参数的形式传递,并且在内部使用
为什么需要行为参数化
行为参数化可以帮助处理频繁变更的需求的一种软件开发模式
行为参数化的缺点
可能产生很多只需要使用一次的实现类
行为参数化的实践
1. 使用谓词封装需要执行的动作
2. 用实现类将动作实现
3. 将谓词用参数的形式传递
如何改进行为参数化的缺点
使用匿名类
1. 笨重
2. 不好理解
使用lambda表达式
简洁
行为参数化经典使用场景
集合的排序
runnable的实现
GUI事件的实现
1.3 如何使用lambda表达式和方法引用
lambda表达式和匿名表达式有什么区别
lambda表达式无需像匿名类那样写很多模版代码
如何使用lambda让代码更加简洁
1. 行为参数化
2. 使用函数式接口来传递行为
3. 执行一个行为
4. 传递lambda
lambda的使用场景
函数式接口上使用lambda表达式
函数式接口
predicate
T -> boolean
表示一个设计类型T的布尔表达式
consumer
T -> void
访问对象,并且对对象进行操作
function
T -> R
输入的对象信息映射到输出
如何构建lambda表达式
(参数)-> { 函数体 }
什么是方法引用
根据已有的方法来创建lambda表达式
方法引用怎么用
替代转发参数的lambda表达式
复合lambda表达式
可以将简单的lambda表达式复合成复杂的表达式
比较器复合
inventory.sort(comparing(Apple::getWeight) .reversed() .thenComparing(Apple::getCountry) );
谓词复合
Predicate<Apple> redApple = a -> "red".equals(a.getColor()); 实例1: Predicate<Apple> notRedApple = redApple.negate(); 实例2: Predicate<Apple> redAndHeavyApple = redApple.and(a->a.getWeight()>150);
函数复合
Function函数的 andthen 和compose ,可以构建一条流水线
2. 理解流是什么?如何使用他来简洁高效的处理数据集
2.1 流是什么?和集合有什么不同
2.2 流的操作有那些?
2.3 什么是收集器,有什么作用?
2.4 流的并行执行
3. 如何高效的使用java8
3.1 利用java8改善现有代码
3.2 默认方法
3.3 option类
3.4 completableFuture 声明性方式表达复杂的异步计算
3.5 新的日期和时间的api
4. 怎么用java编写高效的函数式程序
4.1 如何编写函数式风格程序
4.2 高级的函数式编程技巧
4.3 scala与 java8的比较
4.4 java 8 之后的展望
学习规划
1. 三天解决一个目标
前期目标的拆解
文章的阅读
笔记的整理
阶段性目标的输出
2. 每天五分钟回顾前一天的学习,五分钟总结当天的学习
3. 五分钟整理每天的疑问点
为疑问点分类
描述疑问点
希望得到的解答
4. 周末一小时解决疑问点
了解为什么有这个疑问点(那个知识没有巩固好)
寻找疑问点的答案(是否有多种)
疑问点的扩展
5. 学习完后两天整理学习过程,并且输出文档