String比較.equals
阿新 • • 發佈:2017-10-24
ima 字符 alt oid 堆內存 pos 輸出 ava pri
首先定義四個變量str
public class SIzhui { public static void main(String[] args) { String str1="wang"; String str2="li"; String str3="wang"; String str4=new String("wang"); } }
然後進行比較
public class SIzhui { public static void main(String[] args) { String str1="wang"; String str2="li"; String str3="wang"; String str4=new String("wang"); System.out.println(str1==str2); System.out.println(str1==str3); System.out.println(str1==str4); } }
每定義一個String類型,就會在內存中開辟一塊空間
此處比較的是4個變量的地址
所以輸出
因為變量str1和變量str3賦給的值都為“wang”;
所以這兩個的值被自動存入同一個常量池,
所以此時比較str1和str3,輸出的是true;
str4賦給的值同樣是“wang”,
但是str4=new string,也就是說,此處“wang”被放到一個新開辟的堆內存中,而不會存入常量池,所以此處輸出false。
如果想比較兩個String型變量的值,就用到一個String.equals。這個方法就是用來比較字符串。
public class SIzhui { public static void main(String[] args) { String str1="wang"; String str2="li"; String str3="wang"; String str4=new String("wang"); System.out.println(str1.equals(str4)); } }
運行結果:
String比較.equals