为什么默认的并发级别为ConcurrentHashMap
16,为什么不是18?
最佳答案
我刚刚检查了并发映射的实现,发现了以下内容:
/**
* The default concurrency level for this table. Unused but
* defined for compatibility with previous versions of this class.
*/
private static final int DEFAULT_CONCURRENCY_LEVEL = 16;
似乎只是为了与旧版本兼容而定义。
关于为什么它是16而不是18的问题,我猜是因为按位运算和实现中更好的内存管理,最好是2的幂。