Можливі дублікати:
Яка різниця між рядками, виділеними за допомогою нового оператора і без нового оператора в java J2ME?
Різниця між
String str=new String("Thamilan");
і
String str="Thamilan";
в java і j2me, щодо обмежень пам'яті.
Відповіді:
1 для відповіді № 1Ви можете обчислити виділення пам'яті рядка наступним кодом
int NumOfBytes = 8 * (int) ((((no chars) * 2) + 45) / 8) ;
0 для відповіді № 2
Перша форма створює нову String
об'єкт кожного разу під час його запуску. Другої форми немає.
Це стосується як Java SE, так і Java ME. Дійсно, основне представлення рядків Java SE і Java ME є однаковим.
Використовуючи new String(...)
майже завжди є непотрібним і марнотратним. Рідко є якийсь момент, що має новий екземпляр. Все String
об'єкти незмінні в Java.
(Є рідкісні ситуації, коли створюється новеРядок бажано. Одним з них є те, коли ви берете підрядок великого рядка, і що підрядок, ймовірно, буде доступним набагато довше, ніж оригінальний.)