首先 ,引用变量它只是指向某个对象的一个标示符而已;它本身并非对象;
String s = "abc" 和 String s = new String("abcd")你这俩条语句 中用同一个s来指向俩个不同 的对象这是不对的,
下面是关于这个问题的俩个例子,希望可以帮到你
第一个例子:
public class Test {
public static void main(String args[]) {
String s1 = new String("Test"); / /这儿创建了一个名为s1的String对象“Test”
String s2 = new String("Test"); / /这儿又创建了一个名为s2的String对象“Test”
if (s1 == s2) //因为s1和s2分别指向俩个不同的对象,所以s1==s2值为false
System.out.println("Same");//这儿不执行
if (s1.equals(s2)) //因为俩个对象内容一样所以 s1.equals(s2)值为true
System.out.println("Equals");//这儿输出
}
}
第二个例子:
public class Test {
public static void main(String args[]) {
String s1 = "Test"; / /这儿创建了一个名为s1的String对象“Test”
String s2 = "Test"; / /这儿是让s2也指向String对象“Test”
if (s1 == s2) //因为s1和s2指向同一对象,所以s1==s2值为true
System.out.println("Same");//这儿输出
if (s1.equals(s2)) //因为s1和s2指向同一对象,所以 s1.equals(s2)值为true
System.out.println("Equals");//这儿输出
}
}
|