你什么意思
s1 s2 是两个对象,== 当然是false
s1 s2内容一样,equals当然就是true

解决方案 »

  1.   

    你的理解没错,不过代码不对
    String s1 = new String("abcd");
    String s2 = new String("abcd");
    System.out.println(s1==s2);
    System.out.println(s1.equals(s2));
    --------------------------------------》》》》》》》》》》
    String s1 = new String("abcd");
    String s2=s1;
    System.out.println(s1==s2);
    System.out.println(s1.equals(s2));
    这个就对了
      

  2.   

    "=="是地址比较啊.兄台...
    要么你就像"jFresH_MaN()"\\r\\n"(做人挺厚道的说)"写.
      

  3.   

    ==是比较s1和s2所指向的地址,equals是比较s1和s2所指对象的值!
      

  4.   

    String对象覆盖了equals函数,会进行内容的比较,所以好的Java类都应当覆盖equals函数
    要是你学过C++,搞懂了比这个要复杂n倍的运算符重载,就很容易理解
      

  5.   

    谢谢wpx80(wpx80)的正解.String对象覆盖了equals函数,会进行内容的比较,但不对地址进行比较.用以下代码和我原来的代码对比一下就知道了:Object o1 = new Object();
    Object o2 = new Object();
    System.out.println(o1==o2);
    System.out.println(o1.equals(o2));