我讀了很多關於如何使用StringBuffer和String的問題,特別是在Java中關聯連接以及線程安全與否的情況下。在Java中使用String或StringBuffer:哪個更好?
那麼,在各種Java方法中,應該使用哪種?
例如,在一個PreparedStatement,應查詢是一個StringBuffer:
String query = ("SELECT * " +
"FROM User " +
"WHERE userName = ?;");
try {
ps = connection.prepareStatement(query);
再然後,在一個字符串的實用方法,如:
public static String prefixApostrophesWithBackslash(String stringIn) {
String stringOut = stringIn.replaceAll("'", "\\\\'");
return stringOut;
}
和:
// Removes a char from a String.
public static String removeChar(String stringIn, char c) {
String stringOut = ("");
for (int i = 0; i < stringIn.length(); i++) {
if (stringIn.charAt(i) != c) {
stringOut += stringIn.charAt(i);
}
}
return stringOut;
}
我應該使用StringBuffers嗎?特別是repalceAll無法用於這些對象的情況。
謝謝
摩根先生。
感謝您的所有建議。 StringBuffers已被替換爲StringBuilders,而String替換爲StringBuilders,我認爲它是最好的。
我希望在第一個例子中沒有StringBuilder在內部使用,相反,編譯器可以將字符串連接成一個字符串,因爲沒有可變性。 – 2010-07-19 07:30:37
這是一個非常好的點...刪除了那一點。 – 2010-07-19 07:35:26
但是,鑑於此PreparedStatement可用於多線程場景中,不會使用StringBuffer更好嗎? – 2010-07-19 07:37:28