java基础-转自猿道

2022-11-25 14:59:40 浏览数 (1)

Ø 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

0 人点赞