Ich lese viel über die Verwendung von StringBuffer und String vor allem, wo die Verkettung in Java betroffen ist und ob man threadsicher ist oder nicht.Verwenden von String oder StringBuffer in Java: Was ist besser?
Also, in verschiedenen Java-Methoden, die verwendet werden sollten?
Zum Beispiel in einem PreparedStatement sollte Abfrage ein String sein:
String query = ("SELECT * " +
"FROM User " +
"WHERE userName = ?;");
try {
ps = connection.prepareStatement(query);
Und dann wieder, in einer String Utility-Methoden wie:
public static String prefixApostrophesWithBackslash(String stringIn) {
String stringOut = stringIn.replaceAll("'", "\\\\'");
return stringOut;
}
Und:
// 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;
}
Sollte ich StringBuffers verwenden? Vor allem, wo repalceAll für solche Objekte sowieso nicht verfügbar ist.
Danke
Herr Morgan.
Danke für den ganzen Rat. StringBuffers wurden durch StringBuilders ersetzt und Strings durch StringBuilders ersetzt, wo ich es für die beste hielt.
Ich würde hoffen, dass im ersten Beispiel kein StringBuilder intern verwendet wird, stattdessen kann der Compiler die Strings nur zu einer Zeichenfolge verketten, da es keine Variabilität gibt. –
Das ist ein sehr guter Punkt ... entfernt das bisschen. –
Aber da diese PreparedStatement in einem Multi-Thread-Szenario verwendet werden könnte, wäre StringBuffer nicht besser? –