适用范围:==
可以用于比较基本数据类型(如int
, char
等)和引用类型(如对象)。对于基本数据类型,==
比较的是它们的值;对于引用类型,==
比较的是两个对象的引用是否相同。
String str1 = new String("Hello");
String str2 = new String("Hello");
String str3 = str1;
System.out.println(str1 == str2); // false,因为 str1 和 str2 指向不同的对象(不同的内存地址)
System.out.println(str1 == str3); // true,因为 str1 和 str3 指向同一个对象(相同的内存地址)
String str1 = new String("Hello");
String str2 = new String("Hello");
System.out.println(str1.equals(str2)); // true,因为 str1 和 str2 的内容相同,尽管它们指向不同的对象
String str1 = "Hello";
String str2 = "Hello";
if (str1 == str2) { // 这在某些情况下会返回 true(例如使用字符串常量池),但不应依赖此行为。
System.out.println("Strings are equal");
}
if (str1.equals(str2)) { // 这是正确的做法,可靠地比较字符串内容。
System.out.println("Strings are equal");
}