String s1=new String("abc");
String s2=new String("abc");
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
代码中,s1,s2分别是String的两个对象引用,在栈内存中开辟,指向在堆内存中开辟的两个String对象,用十六进制地址值标示,假设s1=0X0012,s2=0x0056,所以是不相等的,所以结果是false,而equals()方法是String类中专门用来比较对象内容即字符串是否相同的方法,两个对象的内容都是"abc",所以结果是true。 |
|