Java从编程语言到编程思想学习总结

230 阅读3分钟

一、最好的时代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模式驱动

  • 接口驱动
  • 配置驱动
  • 注解驱动
  • 函数驱动
  • 模块驱动