可能重複:
What is the purpose of the expression 「new String(…)」 in Java?Java的字符串使用
什麼時候應該使用new String()
當我應該使用""
可能重複:
What is the purpose of the expression 「new String(…)」 in Java?Java的字符串使用
什麼時候應該使用new String()
當我應該使用""
如果你只是想初始化字符串變量,它的值,你還不知道「」應該罰款。 區別在於「」每次都使用相同的空字符串,而new String()
每次都會在java堆上創建新的對象。
當你想使用new String()
你可能需要一個StringBuffer 。
如果只是爲了創建一個空字符串,然後使用「」。
只需使用""
。它是爲此創建的。
你應該使用String構造,需要一個字符串參數時,該參數是一個非常大的字符串的一個子,和你所期望的子活更長的時間比大串唯一的一次。如
public String getDetails() {
String largeString = getMassivelyLargeStringFromSomewhere();
return new String(largeString.substring(2, 5));
}
的原因是,當你串,則實際上並不創建新的字符數組,你僅從原始字符串引用的字符陣列(具有偏移量和長度)。
因此,不能被垃圾收集從原來的字符串的原始字符數組因爲較小的字符串保持它的一個引用。通過執行新的String(x),您可以複製數據並刪除該引用,以便在更大的字符串可以被其他方法使用時,它將會執行。