为什么用“==”与“equal”得到的输出不同

文章作者 100test 发表时间 2007:12:01 14:28:30
来源 100Test.Com百考试题网


[code]
  class ObjectEquals {
    static int maxElements.
  
    ObjectEquals(int maxElements) {
      this.maxElements = maxElements.
    }
  

    public static void main(String[] args) {
      ObjectEquals a = new ObjectEquals(100).
      ObjectEquals b = new ObjectEquals(100).
      if(a.equals(b))
        System.out.println("Objects have the same values").
      else
        System.out.println("Objects have different values").
    }
  }
  [/code]
  
  以上的输出是 different ,为什么? 当然如果比较 "==" ,更是 different 了。
  
  nod,其实equals并非真正的比较value,在这里equals和==其实都是比较引用。
  但是我们经常认为equals是比较值,有两个原因:
  1。原始类型的数据比如string,int,用equals实际是比较值。
  2。sun实际上是鼓励大家通过重写equals来使之的语义是比较值。但是我们往往很少重写。

相关文章


轻松建立Linux拨号服务
为什么不能配置邮件服务器为openrelay的
Java中关于u aved-value的问题
Java的秘密:将应用程序的设定存在哪里
为什么用“==”与“equal”得到的输出不同
优秀的对象角色建模解决方案-Torque
国庆考研复习:英语多做模拟专业课稳扎稳打
考研10日起网报专家:尽量避开网报高峰时段
广西2008年硕士研究生招生考试网上报名公告
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛