01 Java

Wu Jun 2019-12-26 00:02:45
20 笔记梳理

01 基本设计

1 数据类型

2 控制流程

02 对象与类

1 面向对象

2 修饰符

3 类

4 接口

5 泛型

6 反射

7 代理

代理可以在不改动目标对象的基础上,增加其他额外的功能(扩展功能)。

03 集合

1 集合接口

1)List

2)Deque

3)Map(Set)

2 同步的集合

3 不允许 null 元素

4 遗留的集合

04 并发

1 线程

1)基本概念

2)实现多线程

调用 start 方法启动新线程,run 方法执行同一个线程

3)线程状态

New、Runable、(Blocked、Waiting、Timed Waiting)、Terminated

4)线程池

执行器(Executor)类有许多静态工厂方法用来构建线程池。

2 同步

1)锁

死锁

一组线程,其中每个都在等待一个只有其它线程才可以执行的操作

锁优化

2)同步器

如果同步器能满足需求,就不要试图提供手工的锁与条件的集合。

3)非阻塞同步

无同步方案

05 Java 内存模型

1 主内存与工作内存

2 先行发生原则

如果说操作 A 发生操作 B 之前,操作 A 产生的影响能被操作 B 观察到,影响包括了修改了内存中共享变量的值、发送了消息、调用了方法等

Java 内存模型下一些天然的先行发生关系:程序次序规则、管程锁定规则、volatile变量规则、线程启动规则、线程终止规则、线程中断规则、对象终结规则、传递性;

时间先后顺序与先行发生原则之间基本没有太大的关系