關於==與equals

public class TestStringEquals {
    public static void main(String[] args) {
        String a="wang";
        String b="wang";
        System.out.println(a==b);
        System.out.println(a.equals( b ));
        System.out.println("---------------------");
        String c=new String("wang");
        System.out.println(a==c);
        System.out.println(a.equals( c ));
    }
}

結果爲

true
true
---------------------
false
true

https://www.cnblogs.com/dolphin0520/p/3592500.html
雖然裏面說了==與equals的區別,但沒有說清楚這種a爲什麼等於b。
似乎直接賦值時是作爲基本數據類型來看待(具體方法待查),而再new的時候則是創建的一個對象(?)。
再舉一例:

public class TestUpperLower {
    public static void main(String[] args) {
        Scanner input =new Scanner( System.in );
        String uname,pwd;
        System.out.println("請輸入用戶名:");
        uname=input.next();
        System.out.println("請輸入密碼:");
        pwd=input.next();
        /*if(uname=="TOM"&&pwd=="1234567"){
            System.out.println("登陸成功");
        }else{
            System.out.println("用戶名或密碼不正確");
        }*/
        if(uname.equals( "TOM" )&&pwd.equals( "1234567" )){
            System.out.println("登陸成功");
        }else{
            System.out.println("用戶名或密碼不正確");
        }
	 }
}

使用==號時,顯示用戶或者密碼不正確。
使用equals時,登陸成功。
在判斷String是否相等時最好還是用equals。
———————————————————————

注意
equals比的是值
==比的是地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章