【解释】
通过源码,我们可以得出以下结论:
nextIndex就是从指定的下标i开始,向后获取下一个位置的下标值。
preIndex就是从指定的下标i开始,前向获取上一个位置的下标值。
那么,如果越界了怎么办呢?它们会采用循环查找法。即:获取队尾的下一个下标就会返回队首的下标;获取队首的上一个下标就会返回队尾的下标。如下所示:
开放地址法的基本思想就是:一旦发生了冲突,那么就去寻找下一个空的地址;那么只要表足够大,空的地址总能找到,并将记录插入进去。
后面的内容,参见:ThreadLocal源码精讲(3)