Java中关于String和equals

小白一个,做做笔记帮助自己理解。
今天学习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=”美好一天”;这二者的区别,大家可以自行上网查阅。

点赞