JDK中ArrayList源码问题

private static int hugeCapacity(int minCapacity) {
if (minCapacity < 0) // overflow
throw new OutOfMemoryError();
return (minCapacity > MAX_ARRAY_SIZE) ?
Integer.MAX_VALUE :
MAX_ARRAY_SIZE;
}

上面的源码hugeCapacity方法中为什么会出现minCapacity<0这种情况

注释写得很清楚overflow,什么叫overflow?就是溢出。
因为int minCapacity是有符号的整数,所以存在一个很大的整数超过2^31-1,而变成负数的情况

此处当适用于表达时传入的并非参数,有可能是表达试,或者比较公示,防止思维漏洞

万一有个 程序猿把参数传成负数,然后jdk崩了,然后谷歌闹笑话了。