党员姓党总结:java的小问题

来源:百度文库 编辑:高考问答 时间:2024/05/03 03:36:36
class EqualsTest {
public static void main(String[] arguments) {
String str1, str2;
str1 = "Free the bound periodicals.";
str2 = str1;

System.out.println("String1: " + str1);
System.out.println("String2: " + str2);
System.out.println("Same object? " + (str1 == str2));

str2 = new String(str1);

System.out.println("String1: " + str1);
System.out.println("String2: " + str2);
System.out.println("Same object? " + (str1 == str2));
System.out.println("Same value? " + str1.equals(str2));
}
}
请解释一下.新手.特别是equals它是什么意思.
上边返回true
下边返回false和true

正如楼上所说,==是比较两个变量的值,euqals()是String类的一个方法,用来比较对象的内容是否相等。
第一个str1==str2返回true,因为它们是引用变量的比较,并且值相等。
第二个str1==str2返回false,因为它们指向的是不同的对象,它们所存储的地址是不同的。
而str1.equals(str2)返回true,因为这两个对象的内容是相同的。

上面一段先输出这两个变量:str1跟str2,然后再判断是否同一个变量(那当然不是啦)
下面一段先输出这两个变量:str1跟str2,然后再判断变量的值是否一样,这里是一样的

==用来判断两个变量的地址是否相同,.equals用来判断两个变量的值是否相同