В моем проекте Android у меня есть одноэлементный класс с именем Question
, который будет использоваться в 90% случаев, пока приложение запущено. Класс содержит две статические переменные String
с именем question и answer, поскольку новый экземпляр многократно вызывается с разными строками для ответа на вопрос и ответ, поэтому каждый новый объект String
создается. Я думал об изменении переменных String
до StringBuilder
и каждый раз заменяю содержимое.Java Static String или Static 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;
}
}
Какой должна я предпочитаю использовать меньше памяти, как это возможно?
Какова цель использования 'StringBuilder', если вы не используете append здесь? Я не вижу ни '+ =' для строки в тяжелой загрузке 'for loop'? Ваш код не нужен 'StringBuilder' –