Java string類學習 2
阿新 • • 發佈:2019-05-08
先看程式碼:
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")建立了幾個物件?
兩個物件, 一個物件是 位於字串常量池中,一個物件是位於堆記憶體中。
空指標異常:
解決方法: