equals與==的問題
public class StringBuildermethod {
public static void main(String[] args) {
// 創(chuàng)建一個空的StringBuilder對象
StringBuilder str=new StringBuilder();
? ? ? ??
// 追加字符串
str.append("jaewkjldfxmopzdm");
? ? ? ? // 從后往前每隔三位插入逗號
for(int i=str.length()-3;0<=i;i-=3){
? ?str.insert(i,",");
}
String str2=str.toString();
StringBuilder str3=str;
? ? ? ? System.out.println(str);
System.out.println(str2);
? ? ? ? System.out.println(str2.equals(str));//為什么這里不能用str2==str進行比較?
? ? ? ? System.out.println(str3==str);//這里可以用==進行比較
? ? ? ?
}
}
2018-07-25
基本數(shù)據(jù)類型用“==”,比較的是兩變量的值,你這個不屬于基本變量類型,所以“==”比較的是兩個對象的內(nèi)存存儲地址,不是同一個new出來的對象,基本上不可能相等的,這時應該用equals()來判斷。
2018-06-30
==代表引用地址是否相同,equals判斷str的值是否相同