版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_18377515/article/details/83902476
void expandCapacity(int minimumCapacity) {
//这里*2+2 容易超出int类型的长度,所以才会判断newCapacity这个是否小于0
int newCapacity = value.length * 2 + 2;
if (newCapacity - minimumCapacity < 0)
newCapacity = minimumCapacity;
if (newCapacity < 0) {
if (minimumCapacity < 0) // overflow
throw new OutOfMemoryError();
newCapacity = Integer.MAX_VALUE;
}
value = Arrays.copyOf(value, newCapacity);
}