问答详情
源自:2-5 认识 Java 中的 StringBuilder 类

equals 与 == 的区别

  ==比较 equals   内容指的是什么   地址是什么的地址 例如 :

  String tom=new String("hello");

  String boy=new String("hello");

  String jarry=new String("hi");

 String girl=new String("hello");

 tom.equals(boy)

girl.equals(boy)

  tom==boy 

怎么解释呢 

提问者:何必要在意 2014-11-20 20:27

个回答

  • 11111
    2014-11-22 20:45:46

    String 是一个类。一个类的所有实例都有一个引用地址。

    用变量来保存类的某个实例的引用地址。

    tom 、boy、和 girl 是3个不同的实例,地址当然也不同,用 == 比较出来的结果自然为false。

    代码:

    String tom = "hello";
    String boy = "hello";
    
    System.out.println(tom == boy); // results false
    
    System.out.println(tom.equals(boy)); // results true
    
    tom = boy; // 把boy的引用地址赋值给tom
    System.out.println(tom == boy) // results true


  • 偌颜宁
    2014-11-21 10:16:13

    ==比较的为是否同一个对象,也可以说比较的地址是不是相同。

    equals比较的为是否内容相同, 也可以说比较的对象的值是不是相同的