String s1 = "abc" String s2 = "abc"
s1 == s2 是成立的
当时在做B/S或C/S的登录时为什么要用equals呢,为什么用==就不对呢
比如 if(password.equals("abc")){
//登录成功
} 想不明白..........
s1 == s2 是成立的
当时在做B/S或C/S的登录时为什么要用equals呢,为什么用==就不对呢
比如 if(password.equals("abc")){
//登录成功
} 想不明白..........
s1 == s2 是成立的这是因为"abc"这个字符串只有一份,两个String指向的都是这一个
如果你这样写:String s1 = new String("abc"); String s2 = new String("abc");
s1和s2就不会==,只是equals
(string1==string2)
但在java中,这个代码即使在两个字符串完全相同的情况下也会返回false
Java中必须使用string1.equals(string2)来进行判断 补充
如果:
string s1=new String("Hello");
string s2=new String("Hello");
则(s1==s2)=false 如果:
string s1="Hello";
string s2="Hello";
则(s1==s2)=true;
因为他们指向的同一个对象。 如果把其他变量的值赋给s1和s2,即使内容相同,由于不是指向同一个对象,也会返回false。所以建议使用equals(),因为equals比较的才是真正的内容
http://topic.csdn.net/u/20090301/21/7405d0a4-0c3a-4a00-8af4-05bc33ce572a.html
String s1 = "abc" String s2 = "abc"
s1 == s2 是成立的
这样写是相等是,是由于"abc"是一个常量池。两个都一样。所以相等。
如果你是从台输入的"abc"字符串,它不是常量池了。所以地址不一样了。
这个很好的!
String s1 = "abc"; String s2 = "abc";
if(s1==s2)
{
System.out.println("AAAAAAAAAAAAAA");
}
if(s1.equals(s2))
{
System.out.println("BBBBBBBBBBB");
}
"equals"比较的值