==和equals的区别? 不要这么官方,通俗一些,好理解一些?

解决方案 »

  1.   

    == 判断内存地址(两个引用是否为同一对象), equals 自己定义如何比较两个对象相等  object的 equals的直接使用==判断,需要的时候自己重写equals
      

  2.   

    == 比较地址  和equals  比较内容Java 字符串 之 String 赋值比较 http://www.verejava.com/?id=16993012522383
      

  3.   

    举个例子,A和B手上各牵着一根绳子,绳子那头牵着一个箱子,== 就是看他们绳子那头的是不是牵着同一个箱子,equals 就是看他们绳子那头箱子里的东西是不是一样的都是蓝莓味的3+2饼干,
      

  4.   

    ==只是个关系运算符,equals是基类Object的方法,所有子类都会继承该方法,两者所谓的区别在于equals到底写了啥,如果不重写equals方法,一般可以说是等效的,如果重写了equals方法,那看你怎么重写了
      

  5.   

    ==判断的是地址是否是同一个地址,equal判断的是他们的内容是否一致,举个例子,String a=new String("123"); String b=new String("123");
    用==判断他们返回就是false,用equals就是true,因为new的时候,是单独声明一个存储一个地址用来分别存储a,b,两个不同的地址,而==判断的就是地址是否一样,equals判断的就是他们的内容,也就是123,是否相同,当然,equals可以重写,可以根据自己需求判断,而String a=new String("123"),String b="123";这种情况,用==是为true,因为在b赋值的时候,b存储的“123”是指向a的“123”地址,也就是a,b的存储地址相同,不知道这样你能不能理解,希望有帮助
      

  6.   

    打个通俗的比喻,房子A和房子B,
    A==B对于程序来说比较的是房子A和房子B两个房子所在的地理位置是不是一样,就像门牌号一样,如果一致那么
    A==B是true,
    A.equal(B)就可以让你定义你的比较方式了,比如房子A是两室一厅100平米,B也是两室一厅100平米,那么当上述情况相同时
    你觉得他们相等,也就是说A.equals(B)是true
      

  7.   

    ==比内存地址,equals比值
      

  8.   

    Java里这点比较蛋疼,不是很直观的
    ==并不是比较字符串内容,equals才是
      

  9.   

    两篇文章都叫《炎热的夏天》,一个写的上海,一个写的北京,内容不一样。
    所以:==比较名字,equals比较内容
      

  10.   

     ==是一个比较运算符号,既可以比较基本数据类型,也可以比较引用数据类型,基本数据类型比较的是值,引用数据类型比较的是地址值
    * equals方法是一个方法,只能比较引用数据类型,所有的对象都会继承Object类中的方法,如果没有重写Object类中的equals方法,equals方法和==号比较引用数据类型无区别,重写后的equals方法比较的是对象中的属性
      

  11.   

    ==看的是两个是不是同一个东西,equals看的是两个东西的内容是不是一样的。
      

  12.   

    ==一般用于比较地址,也就是引用。
    基本数据类型是直接取真实值的,特殊的String是直接从数据池取值,其他的引用数据类型都是通过栈内存的地址指向堆里的内容。
    equals是继承于Object的方法,如果重写了该方法如String类,比较的就是里面的内容;如果没有重写例如StringBuffer类,比较的就是地址
      

  13.   

    ==一般用于判断基本数据类型的相等
    equals用于判断引用类型的值相等
      

  14.   

    == 是比较运算符,对于字符串及对象而言,比较的是地址值
    equals重写后可比较字符串及对象的内容.
    涉及类的对象比较的话,建议使用equals
      

  15.   

    ==比较对象(包括内容和地址)
    equals比较内容(字符数量、大小写等,不比较地址)
      

  16.   

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

  17.   

    ==判断两个对象的地址值。equals判断对象中的属性是不是相同的。属性就是成员变量。new两个对象,不管他们的属性是否相同,只要使用==进行判断,都会返回false。因为他们不是一个对象,所以地址值肯定不同。
      

  18.   

     这就相当于我有甲乙两个邻居,都叫张三。用equals判断他们不是同一个人(根据人本身判断的),用“==”判断他们就是同一个人(根据名字判断的)。
      

  19.   

    就好比现在有两个人,一个男人一个女人,==就是比较他俩是否都有胳膊,是否都有腿,equals比较的是他俩是否都有小鸡鸡,是否都来大姨妈
      

  20.   

    Java在==和equals的处理上还是比较良心的,c#的运算符重载可以重写掉==的内存地址比较
      

  21.   

    ==比较的都是内存地址,equals是Object类中的方法,你可以看看源码,里面的实现其实就是判断是否==,也就是内存地址是否一致但是如果你说的是String类的equals的话,因为String类的equals方法是重写过了的,不管是==还是两个字符串内容一样都会返回true,
    具体怎么实现的你看看源码就明白了
      

  22.   

    比如说,同一栋楼,有一个街道名称,和一个开发商起的名称,
     那么用==  , 就是比较这2个名称的地址.是不是一样. 返回的就是tureequals,就是比较这两个是不是一样的, 比如这栋楼里面,1楼两开门, 1-2和11-1.  虽然他们都是同一栋楼,但是返回的就是false
      

  23.   

    两个箱子,各带一条绳子。==比较的是它们的绳子,equals比较的是箱子和箱子里的东西。
    但java中equals可以被重写,改成你自定义的相等的条件。比如,一个Student类,有很多属性,你重写equals,只要name相等,两个对象就相等,而不管其他条件,如年龄什么的(仅仅举例,此处实际上不应重写)。
      

  24.   

    ==比较的是它们的绳子最终所指向的位置,equals比较的是箱子和箱子里的东西。