📜  Java== 和 .equals() 方法的区别(1)

📅  最后修改于: 2023-12-03 15:01:35.839000             🧑  作者: Mango

Java== 和 .equals() 方法的区别

在Java中,我们使用'=='和'.equals()'两种方法来比较对象之间的相等性。这两种方法有着不同的使用场景和相等性判断方式。

'=='运算符

'=='运算符用于比较两个对象的引用是否指向同一个对象。当两个对象的引用指向同一个对象时,'=='运算符返回true;当两个对象的引用指向不同的对象时,'=='运算符返回false。

String str1 = "hello";
String str2 = "hello";
String str3 = new String("hello");

System.out.println(str1 == str2);     //true
System.out.println(str1 == str3);     //false

在上述例子中,str1和str2的引用指向同一个对象,所以'=='运算符返回true;而str1和str3的引用指向不同的对象,所以'=='运算符返回false。

'.equals()'方法

'.equals()'方法用于比较两个对象的内容是否相等。当两个对象的内容相等时,'.equals()'方法返回true;否则,返回false。

String str1 = "hello";
String str2 = "hello";
String str3 = new String("hello");

System.out.println(str1.equals(str2));     //true
System.out.println(str1.equals(str3));     //true

在上述例子中,不同于'=='运算符,'equals()'方法判断的不是对象的引用,而是对象的内容。所以,不同对象但内容相同的情况下,'equals()'方法返回true。

总结
  • '=='运算符用于比较两个对象的引用是否指向同一个对象。
  • '.equals()'方法用于比较两个对象的内容是否相等。
  • 对于基本数据类型,可以使用'=='进行比较。
  • 对于引用数据类型,'=='运算符与'.equals()'方法的判断方式不同,如果想要比较内容是否相等,必须使用'.equals()'方法。