关于==与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比的是值
==比的是地址

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