1. 程式人生 > >String比較.equals

String比較.equals

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