簡體   English   中英

StringBuffer / StringBuilder何時未被編譯器隱式使用?

[英]When is StringBuffer/StringBuilder not implicitly used by the compiler?

我聽說編譯器(或它是JVM?)會自動使用StringBuilder進行字符串連接。 什么時候才能明確宣布一個? 我不需要StringBuffer來保證線程安全。

謝謝。

編譯器將使用“+”自動將其用於任何字符串連接。

如果你想在循環中連接,你通常會明確地使用它。 例如:

StringBuilder builder = new StringBuilder();
for (String name : names)
{
    builder.append(name);
    builder.append(", ");
}
if (builder.length() > 0)
{
    builder.setLength(builder.length() - 2);
}
System.out.println("Names: " + builder);

另一種情況是你想在多個方法上建立一個字符串,或者可能是條件化建築物的某些部分。 基本上,如果您沒有在單個語句中構建字符串(編譯器可以幫助您),您至少應該考慮使用StringBuilder

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM