1. 程式人生 > >解讀原始碼中的問題

解讀原始碼中的問題

1.HashMap 中一個方法,用於初始化容量的,傳入初始化容量的值

static final int tableSizeFor(int cap) {
        int n = cap - 1;
        n |= n >>> 1;
        n |= n >>> 2;
        n |= n >>> 4;
        n |= n >>> 8;
        n |= n >>> 16;
        return (n < 0) ? 1 : (n >= MAXIMUM_CAPACITY) ? MAXIMUM_CAPACITY : n + 1
; }

 得出結論:返回大於cap 的 最小二次冪的值