equals是判断两个变量或者实例指向同一个内存空间的值是不是相同
而==是判断两个变量或者实例是不是指向同一个内存空间
equals源码
public boolean equals(Object obj) { //this - s1 //obj - s2 return (this == obj); }
equals和==代码比较
1 public class StringDemo { 2 public static void main(String args[]) { 3 String str1 = "Hello"; 4 String str2 = new String("Hello"); 5 String str3 = str2; // 引用传递 6 System.out.println(str1 == str2); // false 7 System.out.println(str1 == str3); // false 8 System.out.println(str2 == str3); // true 9 System.out.println(str1.equals(str2)); // true 10 System.out.println(str1.equals(str3)); // true 11 System.out.println(str2.equals(str3)); // true 12 } 13 }