İçinde çok fazla veri bulunan bir değişken kullandım String data
. Bu dizenin küçük bir bölümünü aşağıdaki şekilde kullanmak istedim:
this.smallpart = data.substring(12,18);
Birkaç saat hata ayıklamadan sonra (bir bellek görselleştiricisi ile) , yalnızca alt dizeyi içermesine rağmen , nesneler alanının smallpart
tüm verileri hatırladığını öğrendim data
.
Kodu değiştirdiğimde:
this.smallpart = data.substring(12,18)+"";
..Problem çözüldü! Şimdi benim uygulama şimdi çok az bellek kullanıyor!
Bu nasıl mümkün olabilir? Herkes bunu açıklayabilir mi? Bence bu.smallpart verilere atıfta bulundu, ama neden?
GÜNCELLEME: O zaman büyük String'i nasıl silebilirim? Data = new String (data.substring (0,100)) işi yapacak mı?
new String(String)
; bkz. stackoverflow.com/a/390854/8946 .