1. equals方法对于字符串来说是比较内容的,而对于非字符串来说是比较其指向的对象是否相同的。(String类中重新定义了equals这个方法,而且比较的是值,而不是地址。)
  2. == 比较符也是比较指向的对象是否相同的也就是对象在对内存中的的首地址。

注意:

  1. 如果是基本类型比较,那么只能用==来比较,不能用equals
  2. 对于基本类型的包装类型,比如Boolean、Character、Byte、Shot、Integer、Long、Float、Double等的引用变量,==是比较地址的,而equals是比较内容的。

 

public class TestEquals {

public static void main(String[] args) {

            String s1 = "123";

            String s2 = "123";

            String s3 = "abc";

            String s4 = new String("123");

            String s5 = new String("123");

            String s6 = new String("abc");

            System.out.println(s1 == s2);//(1)true

            System.out.println(s1.equals(s2));//(2)true

            System.out.println(s1 == s3);//(3)flase

            System.out.println(s1.equals(s3));//(4)flase

            System.out.println(s4 == s5);//(5)flase

            System.out.println(s4.equals(s5));//(6)true

            System.out.println(s4 == s6);//(7)flase

            System.out.println(s4.equals(s6));//(8)flase

            System.out.println(s1 == s4);//(9)false

            System.out.println(s1.equals(s4));//(10)true

        }

}