今天刷题的时候遇到了一个奇怪的错误
用个简单的例子说明下:
public static void main(String[] args) {
int i = 1000000;
long t = i * i;
System.out.println(t);
}
一开始以为 i*i 会自动提升为long类型,不会发生越界。但结果和我想的相反,这也就证明了 int * int的结果还是int, 在赋值的时候才提升为long。
今天刷题的时候遇到了一个奇怪的错误
用个简单的例子说明下:
public static void main(String[] args) {
int i = 1000000;
long t = i * i;
System.out.println(t);
}
一开始以为 i*i 会自动提升为long类型,不会发生越界。但结果和我想的相反,这也就证明了 int * int的结果还是int, 在赋值的时候才提升为long。