zoukankan      html  css  js  c++  java
  • Java中 Interger的相等判断

    先看两段代码   结果你知道否?
          Integer a = 1000;
           Integer b = 1000;
           if(a == b){
            System.out.println("true");
           }else{
            System.out.println("false"); 
           }
     
     
           Integer a = 100;
           Integer b = 100;
           if(a == b){
            System.out.println("true");
           }else{
            System.out.println("false"); 
           }
     
    为什么输出结果不同呢?
     
          在Java的自动打包规范中 要求boolean 、 byte 、char  <= 127 ,介于 -128~127之间的int 和short 被包装到固定的对象中。 所以第二段代码返回true.
     
         然而,这种不确定的结果不是我们所希望的。如果在包装器对象进行比较时,调用

    equals 方法不会出现这种问题。

    public boolean equals(Object obj)

    比较此对象与指定对象。当且仅当参数不为 null,并且是一个与该对象包含相同 int 值的 Integer 对象时,结果为 true

     对于equals() 方法中当对象为 null 时,返回false.

  • 相关阅读:
    hdu 2647 Reward
    hdu 2094 产生冠军
    hdu 3342 Legal or Not
    hdu 1285 确定比赛名次
    hdu 3006 The Number of set
    hdu 1429 胜利大逃亡(续)
    UVA 146 ID Codes
    UVA 131 The Psychic Poker Player
    洛谷 P2491消防 解题报告
    洛谷 P2587 [ZJOI2008]泡泡堂 解题报告
  • 原文地址:https://www.cnblogs.com/guanshun/p/5916452.html
Copyright © 2011-2022 走看看