为什么 int i = 1024 * 1024 * 1024 * 1024 编译时没有错误?
的限制是从 -2147483648 到 2147483647。int
如果我输入
int i = 2147483648;
然后 Eclipse 会在“2147483648”下提示一个红色下划线。
但是如果我这样做:
int i = 1024 * 1024 * 1024 * 1024;
它将编译良好。
public class Test {
public static void main(String[] args) {
int i = 2147483648; // error
int j = 1024 * 1024 * 1024 * 1024; // no error
}
}
也许这是Java中的一个基本问题,但我不知道为什么第二个变体没有产生错误。