System.out.println(Integer.MAX_VALUE + 1 == Integer.MIN_VALUE);
是真的.
我知道Java中的整数是32位,不能超过2 ^ 31-1,但我不明白为什么在MAX_VALUE中加1会导致MIN_VALUE而不是某种异常.没有像Ruby那样透明地转换为更大的类型.
是否在某处指定了此行为?我可以依靠它吗?
根据此链接,我了解到,在IE8中,如果创建的数组的索引大于2147483647,则新元素的索引将为负数。
并且有这个样本:
function test() {
var arr = new Array();
arr[2147483650] = 10000;
arr.push(10);
document.write(arr["-2147483645"] == 10);
}
test();
Run Code Online (Sandbox Code Playgroud)
我不明白的是,数组的新添加的元素为何具有索引-2147483645,我理解了负数部分,我只是不知道如何知道新索引是2147483645,不是-2147483644或-2147483651...