Java语言的核心组成部分
1. 基本语法
2. lambda表达式
3. 对象和访问控制
4. 异常框架
5. IO/NIO框架
- 阻塞IO
- 同步IO
- 多路复用IO
- 信号IO模型
5.1 字符流& 字节流
5.2 Channel,Selector,Buffer
6. 集合框架
6.1 Collection
- List(Array,linked)
- Set
- Queue
- Stack
6.2 Map
- HashMap HashTable
7. 泛型
<? extends T>表示该通配符所代表的类型是 T 类型的子类。
<? super T>表示该通配符所代表的类型是 T 类型的父类。
8. 多线程
8.1 线程
- Thread Runnable
- Callable FutureTask[Future,Runnable]
- ThreadLocal
- 线程状态的描述它要经过新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)5 种状态
阻塞状态:io—>wait,lock-wait,sleep,join(线程同步,主线程处于等待状态,直到被join的线程结束)->
{wait,notify,notifyall} {resume,suspend}已经废弃 应该用notify和wait代替suspend和rusume,阻塞会释放的是锁
{}yield,sleep} 阻塞释放CPU,不会释放锁
8.2 线程池
juc 线程池
Executors 提供工厂类
Executor
ExecutorService
ScheduledExecutorService
ScheduledThreadPoolExecutor
AbstractExecutorService
ThreadPoolExecutor
8.3 线程同步
锁分类:乐观锁CAS,悲观锁,自旋锁(线程切换的代价)
锁实现:Synchronized
Lock ReadWriteLock
原子化 AtomicReference volatile
8.3 线程工具
阻塞队列
ArrayBlockingQueue
LinkedBlockingQueue
PriorityBlockingQueue
DelayQueue(Delayed接口)
SynchronousQueue
LinkedTransferQueue
LinkedBlockingDeque
AbstractQueuedSynchronizer
同步工具
CountDownLatch countDown,await
CyclicBarrier await
Semaphore acquire release