RT,通常用==运算符来判断相等都在什么情景下使用呢。

解决方案 »

  1.   

    判断string 相等,在任何情况下最好用equals(),
      

  2.   

    ==只会告诉是否指向同一个对象,不指向同一个对象也可能内容相等。equals方法会比较内容是否相等。
      

  3.   


    应该就是这个意思了。说的再深点,==比较的是内存引用地址,equals比较的是业务含义上的相等。比如实体类User有2个实例User1和User2,都有一个成员变量叫学号xuehao,业务上认为xuehao相等即为同一个用户,所以你会将User的equals方法重写,判断当xuehao相等返回真,即表示同一个用户。但此时如果你用==判断,2者一定是不等的,因为分别new出来的对象其内存地址一定不同。
      

  4.   

    String常量可以使用==
      

  5.   

    String 要是只是比较值相等还是用.equals()方法,要是比较地址的话就用==
      

  6.   

    两个String的引用变量用==比较时,比较的是两个引用本身存储的值(两个地址值)是否相等,也就是是否指向了同一个对象;
    Object的equals()方法和==完全一样,都是比较两个应用变量是否指向了同一个对象;
    但是String类重写了equals( )方法,用来判断两个String引用变量指向的两个字符串是否包含完全相同的字符学列,是则返回true,否返回false;而==的作用不变(Java没有运算符重载)
      

  7.   

    一般来说“==”符号判断“对象”是否相等,而equal()方法判断的是“值”是否相等。下面是jdk关于equal的解释:
    equals
    public boolean equals(Object obj)指示其他某个对象是否与此对象“相等”。 
    equals 方法在非空对象引用上实现相等关系: 自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。 
    对称性:对于任何非空引用值 x 和 y,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 才应返回 true。 
    传递性:对于任何非空引用值 x、y 和 z,如果 x.equals(y) 返回 true,并且 y.equals(z) 返回 true,那么 x.equals(z) 应返回 true。 
    一致性:对于任何非空引用值 x 和 y,多次调用 x.equals(y) 始终返回 true 或始终返回 false,前提是对象上 equals 比较中所用的信息没有被修改。 
    对于任何非空引用值 x,x.equals(null) 都应返回 false。 
    Object 类的 equals 方法实现对象上差别可能性最大的相等关系;即,对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true(x == y 具有值 true)。 注意:当此方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码。 
      

  8.   


       切记:==
        对象:hashCode比较 
       基本数据类型:值比较    equals是纯值比较
    在String都是直接到常量池找的情况下:
        String st="123";
        String st2="12";
         String st3="123";  //这些就是直接到常量池找的
      

  9.   

    string的相同与相等对比String s1 = new String("hello");
    String s2 = new String("hello");
    String s3 = new String("Hello");
    String s4 = s1;
    String s5 = "hello";
    String s6= "hello";
    相等性:(内存中内容是否相等)
    s1.equals(s2)------->true
    s1.equals(s3)------->false
    s1.equals(s4)------->true
    s1.equals(s5)------->true
    s1.equals(s6)------->true
    s1.equalsIgnoreCase(s3)---------->true;相同性:(引用的是否是相同的一块内存)
    s1 == s2 ---------->false
    s1 == s3 ---------->false
    s1 == s4 ---------->true
    s1 == s5 ---------->false
    s5 == s6 ---------->true
      

  10.   

    String str = 常量或者null可以用==
      

  11.   

    判断是否==null时。