Java面试题(三):==和equals比较
1. ==和equals比较
==对比的是栈中的值,是判断两个变量或者实例是不是指向同一个内存空间
而equals是判断两个变量或者实例指向同一个内存空间的值是不是相同
object中equals中默认也是采用==,通常会重写
object:

String:

从上面代码可以看出,String类中被复写的equals()方法其实是比较两个字符串的内容。
public class StringDemo {
public static void main(String[] args) {
String str1 = "Hello";
String str2 = new String("Hello");
String str3 = str2; //引用传递
System.out.println(str1 == str2); //false
System.out.println(str1 == str3); //false
System.out.println(str2 == str3); //true
System.out.println(str1.equals(str2)); //true
System.out.println(str1.equals(str3)); //true
System.out.println(str2.equals(str3)); //true
}
}


