public class Example5_1 {
    public static void main(String args[])
    {
        String s1,s2;
        s1=new String("We are students");
        s2=new String("We are students");
        System.out.println(s1.equals(s2));
        System.out.println(s1==s2);
        String s3,s4;
        s3="how are you";
        s4="how are you";
        System.out.println(s3.equals(s4));
        System.out.println(s3==s4);
    }}
结果是什么?
为什么呢?

解决方案 »

  1.   

    结果:
    true
    false
    true
    true
      

  2.   

    equals比较的是字符串的内容 也就是每个字符都一样 那么返回true;但是在Java中String是对象 如果两个String对象是相等的“==”,那么它们指向是的同一对象。请看:对于String的认识
      

  3.   

    equals方法比较的是值是否相等,==比较的是引用的内容地址。
    new 会重新分配内存
    直接赋值jvm会首先到字符串池中去查找有没有相同的字符串,有的话就取得它的引用,所以相等。