可以使用关系相等运算符“==”和对象的equals()方法比较对象,但是在比较对象时,两者是有区别的。
关系相等运算符" == " :
==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
对象的 equals() 方法:
equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
==比较的是2个对象的地址,而equals比较的是2个对象的内容。
下面给个案例,具体结果我就不贴了,大家就自己运行来实践吧,这样比较印象深刻。如果实在不懂的话可以在我的博客留言,我将会为你解答。
public class test {
public static void main(String[] args) {
String x = new String("java"); //创建对象x,其值是java
String y = new String("java"); //创建对象y,其值是java
System.out.println(x == y); // 使用关系相等比较符比较对象x和y
System.out.println(x.equals(y)); // 使用关对象的equals()方法比较对象x和y
String m = "java"; //创建对象m,其值是java
String n = "java"; //创建对象n,其值是java
System.out.println(m == n); // 使用关系相等比较符比较对象m和n
System.out.println(m.equals(n)); // 使用关对象的equals()方法比较对象m和n
}
}