虽然明白有差异,但却说不出所以然,谁可以解释一下?下面是测试,运行后就知道结果。
重点在第一,二的if语句。。
public class EqualsDemo { public static void main(String[] args) {
String var1 = new String("var1");
String var2 = new String("var");
var2 = new String(var2 + "1");  
System.out.println(var2);
if (var1==var2)  
System.out.println(" using == operator return same Object.");
else
System.out.println(" using == operator return different Object.");
if (var1.equals(var2))
System.out.println(" using equals method return same Object.");
else
System.out.println(" using equals method return different Object.");
var1=var2;
System.out.println("After assigning var1=var2");
if (var1 == var2)
System.out.println(" using == operator return same Object.");
else 
System.out.println(" using == operator return different Object.");
if (var1.equals(var2))
System.out.println(" using equals method return same Object.");
else
System.out.println(" using equals method return different Object.");
}
}

解决方案 »

  1.   

    equals 是值的比较
    ==是两对象之间的比较
    例如 String s1 = new String("string");
    String s2 = new String("string");
    s1 和s2值相同,用equals比较的话,返回true,用==比较的话返回false
      

  2.   

    对与==,它只能比较两个对象的值,而equals则不限制于此,它可以判断一个对象与另一个对象间是否有差异
      

  3.   

    equals比较内容
    ==比较是否同一个引用String s1 = "123";
    String s2 = "123";
    String s3 = new String("123");s1==s2  ;// true ; 
    s1==s3  ;// false
    s1.equals(s3) ;// true
      

  4.   

    ==用在基本类型上是比较基本类型的值是否相等,用在对象之间比较,是比较两个对象的引用内存地址是否相同,也就是是否是同一个对象的引用!
    equals()用来比较对象里边的内容或是值是否相等!比如字符串比较就是比较两个字符串的值是否相等了!自定义类需要重写equals()方法来实现比较!比如下面这个类:
    public class Person{
      private String name;
      private int age;
      
      public Person(String name,int age){
        this.name=name;
        this.age=age;
      }
      public void setName(String name){
        this.name=name;
      }
      public String getName(){
        return this.name;
      }
      public void setAge(int age){
        this.age=age;
      }
      public int getAge(){
        return this.age;
      }  //重写equals方法
      public boolean equals(Person person){
        boolean result=false;
        if(this.name.equals(person.getName()) && this.age==person.getAge();){
           result=true;
        }
        return result;
      }
    }
    //测试类
    public class Test{
      public static void main(String args[]){
        Person person1=new Person("zhangsan",23);
        Person person2=new Person("zhangsan",23);
        boolean result;
        result=person1.equals(person2);
        System.out.println(result);
        if(result){
           System.out.println("person1==person2");
        }
        else{
           System.out.println("person1!=person2");
        }
      }
    }
      

  5.   

    equals 是值的比较
    ==是两对象之间的比较这个说的很对
      

  6.   

    equals比较内容
    ==比较是否同一个引用String s1 = "123";
    String s2 = "123";
    String s3 = new String("123");s1==s2  ;// true ; 
    s1==s3  ;// false
    s1.equals(s3) ;// true
      

  7.   

    最简单的来说==是比较两个 对象是不是指向同一地址.
    equals是比较对象是否相同也就是比较的是两个String的值是否相同,与其地址无关
    ladofwind(随风) 
    解释的非常明白了
      

  8.   

    class testperson
    {
    public String name;
    public int age;public testperson(String name,int age)
    {
    this.name=name;
    this.age=age;
    System.out.println("done!");
    }
    public static void main(String [] args)
    {
    testperson p1=new testperson("aaa",20);
    testperson p2=new testperson("aaa",20);if(p1.equals(p2)) 
    System.out.println("object equals ok!");if(p1== p2) 
    System.out.println("object == ok!");String a=new String ("eee");
    String b=new String ("eee");if(a.equals(b)) 
    System.out.println("string equals ok!");if(a==(b)) 
    System.out.println("string == ok!");}}请高手看下这个代码...
      

  9.   

    自定义类需要重写equals()方法来实现比较!
      

  10.   

    equals是看两个值的比较,而==是比较两个内存地址