為什麼 Java 中的 String 類不可變或 final?
不可變的字串表示我們不能修改物件本身,但我們可以修改對該物件的引用。字串設為 final 以防止其他人對其進行擴充套件並破壞其不變性。
安全性引數通常表示為網路連線、資料庫連線 URL、使用者名稱/密碼等中的字串。如果它可變,則這些引數可以輕鬆修改。
同步和併發使得字串無法更改,自動使其執行緒安全,從而解決了同步問題。
快取記憶體當編譯器最佳化我們的 String 物件時,假設兩個物件具有相同的值(a ="test",b ="test"),因此我們只需要一個字串物件(對於 a 和 b,這兩個物件將指向同一物件)。
類載入字串用作類載入的引數。如果可變,則可能導致載入錯誤的類(因為可變物件會改變其狀態)。
示例
public class StringImmutableDemo {
public static void main(String[] args) {
String st1 = "Tutorials";
String st2 = "Point";
System.out.println("The hascode of st1 = " + st1.hashCode());
System.out.println("The hascode of st2 = " + st2.hashCode());
st1 = st1 + st2;
System.out.println("The Hashcode after st1 is changed : "+ st1.hashCode());
}
}
輸出
The hascode of st1 = -594386763 The hascode of st2 = 77292912 The Hashcode after st1 is changed : 962735579
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP