Java异常体系
Error和Exception的区别
- Error:程序无法处理的系统错误,编译器不做检查
- Exception:程序可以处理异常,捕获后可以恢复
- 总结:前者程序无法处理,后者是可以处理的异常
常见Error和Exception
异常处理体系
finally会在catch块里的return前执行
异常处理原则
高效的异常处理框架
try-catch的性能
Java集合框架
集合之List和Set
集合之Map
HashMap,HashTable,ConccurentHashMap的区别
java8以后,hashMap中的元素为Node
<k,v>[]</k,v>
将Map变成线程安全的
原理和HashTable一样
1 | Collections.synchronizedMap(hashMap); |
如何优化Hashtable?
- 通过锁的细粒度化,将锁拆解为多个锁进行优化
只锁定当前链表或者红黑树的首个节点来实现
sizeCtl:负数代表正在初始化,-1正在初始化,-n n-1 个线程在扩容,正数还未初始化
Java的IO机制
BIO,NIO,AIO的区别