| 名称 | 核心线程数 | 线程池大小 | 非核心线程存活时间 | 等待队列大小 |
|---|---|---|---|---|
| CachedThreadPool | 0 | $\infty$ | 60s | 0 |
| SingleThreadExecutor | 1 | 1 | 0 | $\infty$ |
| FixedThreadPool | $n$ | $n$ | 0 | $\infty$ |
| ScheduledThreadPoolExecutor |
equals 和 == 的区别== 对于基本类型时,比较的是两个对象的值是否相同,而对于对象时,则比较的是这两个引用是否指向了同一个对象equals 则可以由类进行重写,使得其满足正常的比较关系。若不进行重写,则与 == 等价equals 和 hashCode 为什么需要同时进行重写hashCode 在 Object 类下的默认行为是将此值的地址取出作为 hashCode,但这与 hashCode 本意不同,hashCode 的值应当满足对于 $\forall x$ 若 x.equals(y) = true,则 x.hashCode() = y.hashCode()。所以当重写 equals 时,通常意味着这个值的相等概念与 == 不同,所以必然需要重写 hashCode 避免在 hashMap 中出现意料之外的情况