1. 程式人生 > >建立String的兩種方式的區別

建立String的兩種方式的區別

在建立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"方式,因為該方式採用的是字串緩衝池機制,效率更高。