Idée de Reducing the memory consumption of your Java application (Part I)

Dans la partie commentaire, il y a une proposition d’utiliser la méthode ensureCapacity de StringBuffer, je veux préciser que la méthode ensureCapacity(int minimumCapacity) ne fait rien si la capacité actuelle de StringBuffer >= minimumCapacity. Donc le command suivant n’affecte pas StringBuffer

StringBuffer buffer = new StringBuffer(256);
buffer.append("bla");
buffer.append("bla");
–> buffer.ensureCapacity(buffer.length());
(Les tests sont faits sur JDK 1.4.2_08 et JDK 1.5.0_06)

Par contre, la méthode substring de StringBuffer crée toujours une nouvelle instance String, donc
– Si on ne veut pas que le programme crée un nouveau String, utilise
String s = buffer.toString();
– Si on veut que le programme crée un nouveau String, utilise
String s = buffer.substring(0);
(Les tests sont faits sur JDK 1.4.2_08)

Avec JDK 1.5.0_06, on a toujours un nouveau String quelque soit on utilise buffer.toString() ou buffer.substring(0)

Advertisements