String tom = new String("we are students");
String boy = new String("we are students");
String jerry = new String("we are students");
tom.equals(boy)的值是false;tom.equals(jerry)的值是true;
这个是为什么,请哪位高人指点哈,是要分析内存的不同吗?我有点不理解。

解决方案 »

  1.   

    Tom and Jerry汤姆和杰瑞猫和老鼠嘛,势不两立嘛你这情况我看这么理解合适
      

  2.   

    Tom,Jerry同是学生,是外国学生, boy也是学生,估计是中国的.
      

  3.   

    Tom是个学生 这个理解很好
      

  4.   

    tom.equals(boy)应该是true的,tom==boy才会是false。
      

  5.   

    class EqualsTest {
      public static void main(String args[]){
       String tom = new String("we are students");
        String boy = new String("we are students");
        String jerry = new String("we are students");
        if(tom.equals(boy)){
         System.out.println("true");
        }
        else{
         System.out.println("false");
        }
       if(tom.equals(jerry)){
        System.out.println("true");
       }
         else{
         System.out.println("false");
        }
       }
    }
    自己运行一下吧
      

  6.   

    String tom = new String("we are students");
    String boy = new String("we are students");
    String jerry = new String("we are students");

    System.out.println(tom.equals(boy));
    System.out.println(tom.equals(jerry));
    同学,你是不是眼睛看错了!输出2个都是true。
      

  7.   

    这个是我在清华大学编的一门教材《Java2 实用教程第三版》P104上面看到的,请大家再帮我分析哈,代码没有错
      

  8.   

    谢谢大家,课本上面错了。
    duanningfeng520你的例子我运行了的,是两个true。
    不能随便相信书啊。
    尽信书不如无书。
      

  9.   

    equals方法比较的是hashCode,两个对象的hashCode有极小的可能性是相等的,这个可能性让你摊上了
      

  10.   

    这个问题没有什么讨论的价值吧!应该是true,菜鸟都知道的!
      

  11.   

    估计tom和jerry是一个村子的,boy估计是隔壁村子的,他俩欺负这一个
      

  12.   

    要知道equals根==对变量在内存中的分配是不一样的,简单的说equals比较的是两个变量的值,而==比较的却是它们的地址。很显然Lz打印出来的应该是两个true。
      

  13.   

    true
    true
    这是运行的结果
      

  14.   

    String 重写了equals()方法,只要指向的字符串内容相同就返回true
    我的运行结果也是true true
      

  15.   


    import java.lang.*;
    import java.io.*;public class Test2
    {
         public static void main(String [] args)
         {
               String tom = new String("we are students"); 
               String boy = new String("we are students");
               String jerry = new String("we are students");
               System.out.println(tom.equals(boy));
               System.out.println(tom.equals(jerry));
         }
    }
    输入结果都是true,估计是书本印刷错误。
      

  16.   

    这个题我见过,你看一下大小写,应该是boy的你敲错了。在我的java课本上我见过这道题
      

  17.   

    我知道!因为 boy 后来毕业了啊   所以不再是 student 了   结果当然为 false !!!