Integer比较

例如:两个对象里面都有一个方法为getInteger()的方法,返回的类型也是Integer的,这时候想比较两个Integer是否相等不能用"=="号,要用equals方法.

 

原因很简单equals方法来自Object基类。在Object里,equals的实现是直接用 == 操作符比较两个对象的内存地址。

 

举两个例子:

public class MainClass {   
  public static void main(String[] args) {    
    Integer n1 = new Integer(47); 
    Integer n2 = new Integer(47); 
    System.out.println(n1.equals(n2)); 
  }
} 

 输出结果为true,看来Integer中没有按照Object里的默认实现来比较内存地址。在Integer中,equals重载了Object的equals方法(重载指的是子类的方法覆盖掉父类的方法,而改为自己的实现),它比较的是Integer的实际值。

 

 

public class MainClass {    
  public static void main(String[] args) {    
    Integer n1 = new Integer(47);    
    Integer n2 = new Integer(47);    
    System.out.println(n1 == n2);    
    System.out.println(n1 != n2);    
  }    
}  

 这里输出的第一个结果为false,第二个为true。结合上面的代码1可以看出,==和equals的区别。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值