String s3 = "Monday"; String s4 = new String("Monday"); s4 = s4.intern();//注释掉这一句~ s3 != s4

/*
 * ==和equals有何区别
 * 这是在网上偶然看到的一个帖子,如果让我说,还真说不清楚,所以决定一探究竟。
 * 
 */

public class StringAndEquals {

/*
---------- java ----------
a==b的结果是:true
a.equals(b)的结果是true
c==d的结果是:false
c.equals(d)的结果是true
s1 != s2
s1 equals s2
s3 == s4
s3 equals s4

Output completed (0 sec consumed) - Normal Termination
*/
    public static void main(String[] args) {
        // 案例1
        String a = "abc";
        String b = "abc";
        System.out.println("a==b的结果是:" + (a == b)); // 结果:true
        System.out.println("a.equals(b)的结果是" + (a.equals(b))); // 结果:true

        // 案例2
        String c = new String("abc");
        String d = new String("abc");
        System.out.println("c==d的结果是:" + (c == d)); // 结果:false
        System.out.println("c.equals(d)的结果是" + (c.equals(d))); // 结果:true

        // 案例3
        String s1 = "Monday";
        String s2 = new String("Monday");
        if (s1 == s2) {
            System.out.println("s1 == s2");
        } else {
            System.out.println("s1 != s2"); // 输出这句话
        }
        if (s1.equals(s2)) {
            System.out.println("s1 equals s2"); // 输出这句话
        } else {
            System.out.println("s1 not equals s2");
        }

        // 案例4
        String s3 = "Monday";
        String s4 = new String("Monday");
        s4 = s4.intern();//注释掉这一句~ s3 != s4
        if (s3 == s4) {
            System.out.println("s3 == s4"); // 输出这句话
        } else {
            System.out.println("s3 != s4");
        }
        if (s1.equals(s4)) {
            System.out.println("s3 equals s4"); // 输出这句话
        } else {
            System.out.println("s3 not equals s4");
        }

    }

}

 

posted @ 2018-02-09 11:00  sky20080101  阅读(66)  评论(0)    收藏  举报