Ø java stream
Reader 读 | BufferedReader |
---|---|
InputStreamReader | |
CharArrayReader | |
FilterReader | |
Writer 写 | BufferedWriter |
InputStreamWriter | |
CharArrayWriter | |
CharArrayWriter | |
FilterWriter | |
InputStream 输入 | FileInputStream |
ObjectInputStream | |
ByteArrayInputStream | |
OutStream 输出 | FileInputStream |
ObjectInputStream | |
ByteArrayInputStream |
Ø java常用数据结构
Enumeration 枚举,BitSet 位图,Vector 向量,Stack 栈,Dictionary 字典,Hashtable 哈希表,LinkedList链表
Ø 线程
什么是线程;线程的生命周期;线程优先级;线程同步;线程间的通信;线程死锁;线程控制:睡眠,挂起,停止,唤醒;挂起唤醒指定线程怎样做。
通过Thread 和 Runnable,Callable 创建线程。
Ø 网络Socket及文件读写
理解并能够实现socket编程,目前流行使用netty框架。
BIO 同步阻塞,已经淘汰。
NIO 同步非阻塞:ServerSocketChannel
核心组件:Channel,Buffer,Selector
Channel | FileChannel |
---|---|
AsynchronousChannel | |
SocketChannel | |
ByteChannel | |
ServerSocketChannel | |
Buffer | StringCharBuffer |
MappedByteBuffer | |
HeapByteBuffer | |
DirectByteBuffer | |
CharBuffer | |
Selector | SelectorImpl |
PollSelectorImpl | |
KQueueSelectorImpl |
需要了解这三大组件的使用
AIO 异步非阻塞:AsynchronousServerSocketChannel
文件操作 FileChannel,使用NIO实现读写,了解直接内存,内存映射,内存锁定。
Ø JUC并发包
1. 线程池ThreadPoolExecutor的使用,构造函数中的参数有哪些,其内部的工作原理,java提供的默认线程池存在的缺陷。
2. AQS原理,Semaphore,CountDownLatch,CyclicBarrier,Reentrianlock都是基于AQS实现的,需了解其工作原理
3. ForkJoinPool 线程池的使用,CompletableFuture异步并发工具类
4. LockSupport 的使用及原理
5. 理解CAS核心思想,底层实现命令及语法。
6. ReadWriteLock 读写锁
7. Synchronized 锁以及锁升级过程,以及对象头的作用
8. Volatile 工作原理,缓存一致性协议 MESI
9. ThreadLocal 为每个线程维护同一个对象的副本
Ø 集合类
1. HashMap:要了解其put()的工作过程,扩容机制,其内部变量的初始值以及为什么要这样设置,槽中的链表为什么要转化成红黑树,什么时候会转成链表等细节。
2. TreeMap:内部使用怎样的数据结构,主要看put方法
3. ConcurrentHashMap:同 hashMap,怎样解决线程安全的,扩容机制(与hashMap不同),了解其实现细节。
4. ConcurrentSkipListMap:使用跳跃表结构实现的。了解跳跃表的实现。
5. CopyOnWriteArrayList:以写时复制的思想实现的数组集合
6. HashTable:了解其原理,以及和hashmap的区别
7. 队列的使用:LinkedTransferQueue,SychronizeQueue,
ArrayBlockingQueue,Disruptor
Ø 其他
泛型,反射,SPI,动态代理,
克隆:深拷贝,浅拷贝。
引用类型:强引用,软引用,弱引用。
日期:Date,LocalDate
转自:http://www.aitroad.cn/itwayutu.html