“==”是两者是否指向同一个内存池比较
而“equals”是两者的内容是否相同做比较

解决方案 »

  1.   

    ==是比较地址
    equals()是比较值.
      

  2.   

    ==是比较地址
    equals()是比较值.
      

  3.   

    ==是比较地址
    equals()是比较值.
      

  4.   

    StringBuffer sb1 = new StringBuffer("hello"); 
    StringBuffer sb2 = new StringBuffer("hello"); 
    if (sb1.equals(sb2)) 
    System.out.println("equal"); 
    else 
    System.out.println("not equal"); 
    the output is :
    not equal
      

  5.   

    to:: fillbill(fillbill) StringBuffer sb1 = new StringBuffer("hello"); 
    StringBuffer sb2 = new StringBuffer("hello"); 
    if (sb1.equals(sb2)) 
    System.out.println("equal"); 
    else 
    System.out.println("not equal"); 中的equals()没有重载
      

  6.   

    在java中,+只有在String 中算重载。在
    StringBuffer中都不算重载
      

  7.   

    1。关系运算符“==”是一个二元运算符,用来比较左右操作数是否相等,返回boolean值。
    2。对于基本数据类型,直接比较值的大小。对于class类型(用户定义类型或标准库类)的 对象,比较的是对象的reference(引数),并不是对象的内容。
    class a{
        int b;
        }
    a s1=new a();
    a s2=new a();
    s1.b=10;
    s2.b=10;
    if(s1==s2){
         System.out.println("true");
         }
    else{
         System.out.println("false");
         }//因为引数不相同,所以结果输出false
    3。如果要比较对象的内容,得用equals().
    Byte s1=new Byte(10);
    Byte s2=new Byte(10);
    if(s1.equals(s2)){
         System.out.println("true");
         }
    else{
         System.out.println("false");
         }//因为对象内容相同,所以结果输出true
    4。不过要注意的是equals()默认的也是比较对象的reference,但Java标准库中的多数类都 覆写了equals(),使它能比较对象的内容,所以想上面的用法没错。只是当想用自己定义的类使用equals()方法比较对象的内容时,必须覆写该方法,使它能比较对象的内容。(也可从标准库中也覆写过的类继承)
    class a{
        int b;
        }
    a s1=new a();
    a s2=new a();
    s1.b=10;
    s2.b=10;
    if(s1.equals(s2)){
         System.out.println("true");
         }
    else{
         System.out.println("false");
    //输出false
      

  8.   

    如果你是初学,
    可能有点难理解。
    你可以看一下。think in java 第十?章的
      

  9.   

    对于==是比较是否是同一实例,是比较内存地址是否一样,而equals()是比较两个字符串是否相等,两个是不一样的