/ / різниця між рядком у java і j2me щодо обмежень пам'яті? [дублікат] - java, java-me, мобільний додаток

різниця між рядком в java та j2me щодо обмежень пам'яті? [дублікат] - java, java-me, мобільний додаток

Можливі дублікати:
Яка різниця між рядками, виділеними за допомогою нового оператора і без нового оператора в 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.

(Є рідкісні ситуації, коли створюється новеРядок бажано. Одним з них є те, коли ви берете підрядок великого рядка, і що підрядок, ймовірно, буде доступним набагато довше, ніж оригінальний.)