一、最好的时代VS最坏的时代
1.1.最好的时代
- 行业景气
- 能者多得
- 分工明确
- 趋向成熟
- 咨询发达
1.2.最坏的时代
- 残酷的竞争
- 闭塞的思维
- 浮躁的氛围
- 伪善的行业
- 权威的缺失
二、从Java编程语言到编程思想
1.1.编程语言
- 语言变化
- 数据结构
- 类库提升
1.2.编程模型
- 面向对象
- 面向切面
- ......
1.3.编程思想
- 契约编程
- 设计模式
- 模型驱动
三、Java编程语言
3.1.语法变化
-
Java5-2004
- 枚举
- 泛型
- 注解
- 封箱(拆箱)
- ......
-
Java6-2006
- @Override接口
-
Java7-2011
- Diamond语法
- 多Catch、try
- ......
-
Java8-2014
- lambda语法
- 可重复注解
- 类型注解
- ......
-
Java9-2017
- 模块化
- 接口私有方法
- ......
-
Java10-2018
- 局部变量类型判断
3.2.Java数据结构
-
原生类型
- boolean
- byte
- short
- int
- long
- float
- double
-
对象类型
- Object
- String
- Class
-
数组类型
- int[]
- Object[]
- Object...
-
集合类型
- Collection
- Stack
- Vector
- List
- Set
- Queue
- Map
- Enumeration
- Iterable
- Iterator
3.3.Java类库提升
-
Java 5
- 开发框架(J.U.C)
- 格式化(Formatter)
- Java管理扩展(JMX)
- Instrumentation
- XML处理(DOM、SAX、XPath、XSTL)
-
Java 6
- JDBC4.0(JSR 221)
- JAXB2.0(JSR 222)
- 可插拔注解处理API(JSR 269)
- Common Annotations(JSR 250)
- Java Compiler(JSR 199)
- Scripting in JVM(JSR 223)
-
Java 7
- NIO 2(JSR 203)
- Fork/Jion框架(JSR 166)
- invokedynamic字节码(JSR 292)
-
Java 8
- Stream API(JSR 335)
- CompletableFuture(J.U.C)
- Annotation on Java Types(JSR 308)
- Date and Time API(JSR 310)
- 可重复Annotations(JSR 337)
- JavaScript运行时(JSR 223)
-
Java 9
- Reactive Streams Flow API(J.U.C)
- Process API Updates(JEP 102)
- Variable Handles(JEP 193)
- Mothod Handles(JEP 277)
- Spin-Wait Hints(JEP 285)
- Stack-Walking API(JEP 259)
-
Java 10
- Java-Based JIT Compiler(Graal)
四、Java编程模型
4.1.Java面向对象OOP模型
- 封装性
- 派生性
- 多态性
4.2.Java面向切面AOP模型
-
Java静态接口
-
Java动态代理
-
字节码提升
-
面向切面设计模式
-
拦截判断
- 方法
- 注解
- 参数
- 异常
- ...
-
拦截执行
- 前置
- 后置
- 返回
- 异常
-
4.3.Java面向元数据编程
- 泛型
- 反射
- 注解
4.4.Java面向函数编程
- 函数式接口
- 默认方法
- 方法引用
五、Java编程思想
5.1.Java契约编程
-
操作对象
- 字段(Field)
- 方法(Method)
- 构造器(Contructor)
-
语义命名
- 模块名
- 包名
- 类名
- 枚举
- 字段
- 方法
- 常量
- ...
-
访问控制
- private
- 默认
- protected
- public
-
方法返回类型
- 类型(数据结构、泛型)
- 多态性(层次性)
- 约束(注解)
- ...
-
构造器、方法参数
- 名称
- 类型(数据结构、泛型)
- 顺序
- 数量
- 约束
- ...
-
异常错误
- 类型(检查和非检查)
- 层次(Throuable、Error、Exception)
- 来源(JDK、自定义、三方库)
5.2.Java设计模式
- 面向对象设计模式
- 构造模式
- 结构模式
- 行为模式
- 并发模式
- 面向切面设计模式
- 判断模式
- 拦截模式
- 面向元数据设计模式
- 泛型接口设计
- 注解驱动设计
- 面向函数设计模式
- 函数式接口设计(SCFP)
- Fluent API设计
- Reactive/Stream API设计
5.3.Java模式驱动
- 接口驱动
- 配置驱动
- 注解驱动
- 函数驱动
- 模块驱动