1.hashset
特点:不允许重复,不允许null
底层是基于hashmap实现的,存储key的时候,先计算hashcode值,hashcode值一样,然后比较equals,如果equals也一样说明是同一个对象。
hashcode值一样,equals不一样就覆盖(key保持不变,替换value)
2.线程池特点应用
public void init() {
pool = new ThreadPoolExecutor(
10,
30,
30,
TimeUnit.MINUTES,
new ArrayBlockingQueue<Runnable>(10),
new CustomThreadFactory(),new CustomRejectedExecutionHandler()); //指定2面两个参数
/*
pool = new ThreadPoolExecutor(
10,
30,
30,
TimeUnit.MINUTES,
new ArrayBlockingQueue<Runnable>(10)
); 也可以这样不指定,后面两个参数使用线程池默认指定的
} */
}
各个参数的意思,jdk已经封装好了,直接调用就行
cachthreadPool
a.无界的线程池,新来一个任务就新创建一个线程
b.空闲的线程,60s会被回收
c.新来的任务,若是有空闲的线程,会复用之前的线程
singleThreadPool
只有一个线程,保证FIFO,是串行。若这个线程有问题之后,会新创建一个线程