【发布时间】:2015-07-18 19:08:06
【问题描述】:
在我的 Android 项目中,我有一个名为 Question 的单例类,它将在应用程序运行时 90% 的时间使用。该类包含两个名为问题和答案的静态String 变量,因为使用不同的问题和答案字符串重复调用新实例,因此每次都会创建一个新的String 对象。我正在考虑将String 变量更改为StringBuilder 并每次都替换内容。
这是带有String变量的代码:
public class Question {
private static Question mQuestionClass = null;
private static String mQuestion = "";
private static String mAnswer = "";
private Question() {
}
public static Question getQuestionInstance(String question, String answer) {
if (mQuestionClass == null) {
mQuestionClass = new Question();
}
mQuestion = question;
mAnswer = answer;
return mQuestionClass;
}
}
这是带有StringBuilder变量的代码:
public class Questiontwo {
private static Questiontwo mQ2 = null;
private static StringBuilder mQ = null;
private static StringBuilder mA = null;
private Questiontwo() {
}
public static Questiontwo newInstance(String q, String a) {
if (mQ2 == null) {
mQ2 = new Questiontwo();
}
if (mQ == null) {
mQ = new StringBuilder(q);
}
mQ = mQ.replace(0, mQ.length(), q);
if (mA == null) {
mA = new StringBuilder(a);
}
mA = mA.replace(0, mA.length(), a);
return mQ2;
}
}
我应该更喜欢哪个使用尽可能少的内存?
【问题讨论】:
-
这里不使用 append 时,使用
StringBuilder的目的是什么?我没有在重载for loop的字符串上看到+=?您的代码不需要StringBuilder
标签: java android string stringbuilder