建立String的兩種方式的區別
阿新 • • 發佈:2019-01-22
在建立String物件時,通常來講,有兩種方式,一是new型:String s = new String("abc");另一種是雙引號型:String s = "abc";那麼這兩種方式有什麼區別呢?
答:這兩種方法生成的字串物件,在記憶體中的存取機制不同。
Java為String型別提供了緩衝池機制,當使用雙引號定義物件時,Java環境首先去字串緩衝池尋找相同內容的字串,如果存在就直接拿出來應用,如果不存在則建立一個新的字串放在緩衝池中。示例程式碼如下:
String a = "tom";
String b = "tom";
在上訴程式碼中,變數a和b使用的是緩衝區中的同一個儲存物件。
在使用String構造方法定義物件時,Java環境會和建立其他型別的物件一樣,每次呼叫時,都會去建立一個新的物件。示例程式碼如下:
String a = new String("tom");
String b = new String("tom");
在上述程式碼中,變數a 和b 使用的是兩個不同的儲存物件,只是物件中的內容相同。
執行結果如下:
結束語,String s = new String("abc")和String s = "abc"都可以定義String型別物件,但需要注意兩者的區別。一般情況下,建議使用String s = "abc"方式,因為該方式採用的是字串緩衝池機制,效率更高。