事先声明,本文是类似查漏补缺的,大伙最好自己整理。
集合框架:
Collection包括(List、Set、Queue)和Map。
List:ArrayList,LinkedList,vector(弃用),有序,允许重复
ArrayList:基于动态数组,随机访问快。
LinkedList:基于双向链表,插入删除快。
Set:HashSet,LinkedHashSet,TreeSet,无序,不允许重复
HashSet:基于HashMap实现,无序,不允许重复。
LinkedHashset:基于HashMap和链表实现,基于保持插入顺序。
TreeSet:基于红黑树,基于自然顺序和自定义顺序。
Queue:ArrayDeque,PriorityQueue
PriorityQueue
是基于优先级堆实现的队列
ArrayDeque
是基于可调整大小的数组实现的双端队列
Map:HashMap,LinkedHashMap,TreeMap,键值对,键不允许重复。
TreeMap:基于红黑树,有序。
HashMap:基于哈希表,键值对,无序。
LinkedHashMap:基于哈希表和链表,基于顺序场景。
多线程:
线程和进程的区别:
进程是包含线程的,进程之间不共享空间,但是进程的线程共享。
线程安全问题:线程同步
同步代码块:
给核心代码上锁。
synchronized(同步锁) :每次只允许一个线程加入,执行完毕解锁才允许其他线程进来执行。
同步方法:
给核心方法上锁。
线程通信:
多个线程互相告知自己状态避免资源争夺。
类型:生产者消费者模型。、
void wait(),等待并且占用锁,等notify或者notifyall唤醒。
void nitofy(),void notifyAll();
线程池:一个可以复用线程的技术,
线程6种状态:new,runnable,blocked,waiting,Timed Waiting,Teminated。