特性:
為了效率考量,以 "" 包括的字串,只要內容相同(序列和大小寫相同),無論在程式碼中出現幾次,JVM都只會建立一個String實例,並在字串池(String pool)中維護,既然寫死了字串內容,基於節省記憶體考量,自然就不用為這些字串常量分別建立String實例。
如果想比較物件實質內容是否相同,不要使用==,要使用equals。同樣地,如果想比較字串實際字元內容是否相同,不要使用==,要使用equals。
字串物件一旦建立,就無法更動物件中任何內容,物件上沒有任何方法可以更動字串內容。
不要將+用在重複性的串接場合,像是迴圈中或遞迴時使用+串接字串,這會因為頻繁產生新物件,造成效能上的負擔。
文字區塊:
文字區塊使用 """ 標示區塊開頭與結尾,可以在文字區塊中直接換行、縮排,不管作業系統本身的換行符號為何,文字區塊的換行都會使用\n,縮排的起點以結尾的 """ 該行起點作為依據。
文字區塊會建立String實例,因此若文字區塊中有需要置換的部分,可以使用formatted方法,這是Java 15在String新增的實例方法,在Java 15之前,若要直接對字串進行格式化,可以透過String.format靜態方法。