场景:
int和long类型
原因:
int 4个字节,一个字节是8位,那么int类型是有32位,其中一位代表正负号
所以用二进制表述数据值范围为2的31次方-1到负的2的31次方。而这个值区间为-2147483648~2147483647。
一般情况下是用不到的,一旦超出2147483647,程序自动变为-2147483648。结果产生异常数据
解决方案:
Math.addExact(a, b); 替代加法 超出则会抛出异常
注意事项:
如果是-2147483648 取绝对值的时候,也会溢出,导致数据异常,有条件需要规避