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 ;隐含了一个强制类型转换

最后修改:2019 年 09 月 05 日
如果觉得我的文章对你有用,请随意赞赏