向高手请教Java中 equals与==的区别  谢谢!

解决方案 »

  1.   

    equals比较内容是否相同,==比较的是引用是否相同。
      

  2.   


    String str1 = new String("abc");
    String str2 = new String("abc");
    System.out.println(str1 == str2);//打印出false,因为str1和str2是两个不同的引用
    System.out.println(str1.equals(str2));//打印出true,因为str1和str2的值相同
      

  3.   

    默认情况下二者没有任何区别,都是比较引用的,比如你自己写个类equals就等同于==但是很多类重写了equals方法,比如String,重写后用于比较内容是否相同,而==依旧是比较引用所以有没有区别要看有没有重写equals
      

  4.   

    ==  是比较引用的, 就是两个"变量" 是否指向同一个对象。
    equals, 如果不重写的话(overide)跟==是一样的,看Object的equal实现就知道了。如果重写equals的话,那怎么才叫equals了,由你的具体实现决定。 所以常说的比较内容,比较值是很抽象的;对一个对象而言,什么才是它的内容,它的值呢??
      

  5.   

    equals比较内容是否相同,==比较的是引用地址是否相同
      

  6.   

    看一下java的源码,就清晰了。
    Ojbect类下的equals()和String类下的equals()
      

  7.   

    “equals”和“==”的区别
    答:如果操作两边都是对象句柄,就比较两个句柄是否指向同一个对象。如果两边是基本数据类型,比较就是值。“equals”比较奥德是两个对象的内容如果不重载“equals”方法,自动调用object的“equals”方法,则和“=="一样。在jdk中像:“String”、“Integer”默认重载了“equals”方法,则比较的是对象的内容。在实际编程中,建议使用“equals”方法。
      

  8.   

    equals比较的值
    ==比较的是地址
      

  9.   

    我艹,这么人连这个基本问题都搞不清楚,搞不清楚问就是了,有些傻X还自以为是,真是服了。看来csdn java版块还是学生居多啊。
      

  10.   

    equals比较内容是否相同,==比较的是引用是否相同
      

  11.   

    equals:比较内容
    ==:比较地址
      

  12.   

    "=="是运算符,判断两个对象/基础类型引用的内存地址是否相同。equals是Object类中方法,所以所有类都可以调用,
    因为多态的关系,如果你没有重写equals,那么调用的就是Object类中的equals方法,即直接用"=="比较。
    如果你重写了equals方法,那么返回值就由你自己定义。
    注:JDK中所提供的Object子类,你能用上的都有重写equals方法。
      

  13.   

    LS得说法跟《Java编程思想》44页很相似啊,楼主不妨看看