1.BitSet类的基本原理
类实现了一个按需增长的位向量。用一位来表示一个数据是否出现过,0表示没有出现过,1表示没有出现过
默认情况下,set中所有位的初识值都是0(或者false)。
多个线程操作一个BitSet是不安全的。
2.API解析
2.1 底层数据结构
- 内部维护了一个long数组,所以数组words中的每个元素word默认是64位的long值。
- ADDRESS_BITS_PER_WORD = 6:每个word值需要6个bit来表示地址:64 = 2^6
- BITS_PER_WORD = 64:每个word有64位,即一个long数据
- BIT_INDEX_MASK:每个word有64位,最大索引值是64 - 1 = 63
- wordsInUse:BitSet的逻辑大小,即底层long数组的size