lambda 式函数式编程的一种。
1
var a = new ArrayList<Integer>();
面试跳槽都差不多。
往期视频
- Java 9
- Spring Boot系列
- Spring Cloud 系列
- 高并发系列
- Spring 系列
- 面向对象设计
议题
- 面向对象设计陷阱
- 函数是编程基础
- 函数式设计
- 函数式使用场景
- 问答互动
面向对象设计陷阱
- 我们经常听说
- 一切都是对象
- OOP 更符合人类的思考方式
- 面向接口编程,高内聚、低耦合
- 不断地重构,实现代码复用
- 设计模式很重要
为什么 OOP 更符合人类的思考方式?
答:把数据封装成一个对象,任何一个物体都可以用对象来封装。可量化的东西可以用属性来表达。封装、继承、多态。
Java 是面向接口编程吗?
代码复用?
答:代码具有原子性,逻辑单元不可再分割,工程里边会有一个 StringUtils 就是典型的重复发明轮子。开源软件不让你重复发明轮子,然后他自己发明轮子。无论业务还是代码都有重合的部分。低耦合,让代码尽量减少有交集。依赖与 Apache common 的包。
现实工作中,忙的没有时间休息,哪有什么时间重构。都是边边角角的东西。
GG 23 设计模式。
答:
我们是否思考
- 对象是否面面俱到?
- OOP 会不会更复杂?
- OOP 与代码复用是否存在必然联系?
- 怎样才算是高内聚、低耦合
- 设计模式是否束缚了你我的想象?
有原生类型,所以并不是全部都是对象。基础类型,是基本类型。
DDD 领域设计模式。想法很好,
TDD 测试驱动开发。
函数式设计和面向对象有点冲突。但是 Java 一起了
OOP 有些会变复杂。
OOP
Utils 方法都是面向过程的
1 2 3 //常见: 工厂、抽象工厂、单例模式、共享(享元)模式、代理模式(静态、动态)、委派模式 //常用: 装饰器模式、策略模式、模板模式、创建者模式、观察者模式、责任链模式 //陌生: 访问者模式、调停者模式、桥接模式单例模式
- JVM 级别、ClassLoader 级别
- 容器级别
tomcat 级别,netty 级别,
函数式编程基础
- Lambda 表达式
- Java 8 方法引用
- Java 8 构造器引用
- Java 8 函数式接口
函数式设计
- Function 设计
- Supplier 设计
- Consumer 设计
- Predicate 设计