回覆列表
  • 1 # 使用者4799877351593

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

  • 中秋節和大豐收的關聯?
  • 面膜真的等於“細菌培養基”嗎?