我读了很多关于在Java中使用StringBuffer和String,特别是涉及到连接字符串时,哪一个是线程安全的。
那么,在各种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;
}
我应该使用StringBuffer吗?特别是在这些对象中repalceAll不可用的情况下。
谢谢
Morgan先生。
感谢您提供的所有建议。我已经将StringBuffer替换为StringBuilder,并在我认为最好的地方将String替换为StringBuilder。