首先,对象间的比较有两种方式,即“==”和equals.
"=="运算符用于比较两个对象的内存地址是否相等。
equals()方法用于比较两个对象的内容是否一致。
两个简单的例子:
public class TestEquals
{
public static void main(String[] args)
{
String str1 = new String("hello");
String str2 = new String("hello");
String str3 = str2;
System.out.println(str1==str2);//运行结果为false.为什么呢?
//因为这两个对象指向了不同的内存空间,所以它们的内存地址是不一样的。
System.out.println(str2==str3);//运行结果为true.
//因为"str3=str2"这就相当于str3也指向了str2的引用,
//此时这两个对象指向同一内存地址,所以结果为true.
}
}
public class TestEquals1
{
public static void main(String[] args)
{
String str1 = new String("hello");
String str2 = new String("hello");
String str3 = str2;
System.out.println(str1.equals(str2));//true.因为equals()方法用于比较两个对象的内容是否一致,
//而这两个对象的内容是一样的。
System.out.println(str2.equals(str3));//true,内容也是一样的。
}
}
|