不可變String
String物件是不可變的。 JVM對其做了一個優化,在記憶體中開闢了一段區域作為字串常數池。透過"字面量"形式建立的字串物件都會快取並重複使用。
//"字面量"形式创建的字符串 String str = "abc";
字串運算子:" " 和 StringBuilder
運算子 「 」可以連接String字串。編譯器有一個最佳化措施,當編譯原始碼時發現一個計算表達式所有參數都是字面量時,會直接進行計算,並將結果編譯到class檔案中。
String str = "abcd"; String str1 = "ab"+"cd";//输出abcd 对象不变 System.out.println(str==str1);//true
計算表達式一方為變量,那麼編譯器會在運行期拼接,最後產生新對象,消耗效能。
String str = "abcd"; String str1 = "ab"; String str2 = str1+"cd";//输出abcd 对象改变 System.out.println(str==str2);//false
StringBuilder
編譯器在編譯時也會自動引用StringBuilder的append()方法拼接,最後呼叫toString()產生結果。但是在.calss字節碼中每次拼接循環都會建立一個StringBuilder對象,如果字串操作複雜,編寫.java檔時創建一個StringBuilder對象進行拼接。
String的常用方法
以上是String_字串的詳細內容。更多資訊請關注PHP中文網其他相關文章!