1. 程式人生 > >Java string類學習 2

Java string類學習 2

  先看程式碼:

String str1="hello";
        String str2="hello";
        String str3=new String("hello");
        String str4=new String("hello");
        
        System.out.println("str1==str2?  "+(str1==str2));   //true
        System.out.println("str2==str3?  "+(str2==str3));   //false
        System.out.println("str3==str4?  "+(str3==str4));   //false
        System.out.println("str3.equals(str4)?  "+str3.equals(str4));   // true   ???
  • "=="用於比較引用資料型別資料的時候比較的是兩個物件的記憶體地址;
  • equals方法預設情況下比較也是兩個物件的記憶體地址,但是字串對equals方法進行了重寫;
  • 是String類重寫了Object的equals方法,比較的是兩個字串物件 的內容是否一致。

查詢原始碼:

    


 筆試題目:new String("abc")建立了幾個物件?
  兩個物件, 一個物件是 位於字串常量池中,一個物件是位於堆記憶體中。

空指標異常:

解決方法: