小白一个,做做笔记帮助自己理解。
今天学习Java的时候,刚好学到关于判断字符串是否相等的问题,于是引发了一个区别“==”和“equals”的一个问题,还是从程序入手吧。
package equals;
public class equal {
public static void main(String[] args) {
// TODO Auto-generated method stub
String A=new String("美好一天");
String B=new String("美好一天");
System.out.println(A.equals(B));
System.out.println(A==B);
String C="美好一天";
String D="美好一天";
System.out.println(C.equals(D));
System.out.println(C==D);
}
}
以上程序的输出结果分别是
true
false
true
true
为什么会出现上面的结果呢,这要从“==”和“equals”的比较的作用来探讨。equals()方法是用来判断两个字符串的内容是否相等。容易和“==”混淆,“==”也可以用来比较两个字符串,但是用“==”比较的不只是字符串的内容是否相等,它还会检查这两个字符串的地址是否相同,即两个字符串是否处在同一个位置上。只有字符串内容相同而且它们的地址也相同的情况下,才返回true,否则返回false。关于String A=new String(“美好一天”);和String C=”美好一天”;这二者的区别,大家可以自行上网查阅。