public class Fr {
public static void main(String[] args) {
int num = 2147483647 ;
long temp = num + 2L ; // 右边 num的初始值为 2147483647 num+2的值复制给temp =2147483649
System.out.println(num) ; //打印num的初始zhi
}
}
//运行结果为: 2147483647
再看一段代码:
public class Fr {
public static void main(String[] args) {
int num=2147483647;
num+=2L; //+= int 类型的取值范围在:-2147483648~2147483647 根据题型 2147483647+2=2147483649
//(2147483649 )不在 int 类型范围内 所以结果为 -2147483647
System.out.println(num);
}
}
运行结果为:-2147483647
运行结果分别为:2147483647 和 -2147483647
区别 num+=2L ;隐含了一个强制类型转换