static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16
查看HashMap源碼,發現這個static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; 值為16。
這個是位移算法。
例如:
4<<2
4的二進制是:0000 0100
<<表示往左移兩位:00 010000
只要把4轉換成二進制,往左移兩位,再轉換成10進制得出結果既是:16
更簡單的計算方法就是 4<< n 等效於 4 乘以 2的 N 次方
那十進制的數是怎樣轉化成二進制的數呢?有一個最簡單的方法,就是不斷除以2。余數寫在右邊。然后從最后一個得到的商倒回去(商余數排列起來),得到的數就是二進制要表達的結果了哦。舉幾個例子,如圖。
接下來學習把二進制的數轉化為十進制的數。從左邊第一位數乘以2的n-1次方(冪),n代表該數字從右到左數起的位數。加上從左邊第二位數乘以2的n-2次方。
依此類推,一直到最后一個數。一個數的0次方是1 (0除外),看圖認真學習。圖中^的符號就是表示次方(冪)的意思,在打不出的情況下,可以這樣表示的哦。