J'ai utilisé une variable avec un grand nombre de données, dire String data
.
Je voulais utiliser une petite partie de cette chaîne de la façon suivante:
this.smallpart = data.substring(12,18);
Après quelques heures de débogage (avec une mémoire visualizer) j'ai découvert que les objets champ smallpart
retenu toutes les données à partir d' data
, bien qu'il ne contient la sous-chaîne.
Quand j'ai changé le code:
this.smallpart = data.substring(12,18)+"";
..le problème a été résolu! Maintenant, mon application utilise très peu de mémoire maintenant!
Comment est-ce possible? Quelqu'un peut-il expliquer cela? Je pense que c'.smallpart gardé le référencement vers les données, mais pourquoi?
Mise à JOUR: Comment puis-je effacer la grosse Corde, alors? Data = new String(des données.substring(0,100)) faire la chose?