9
文字列に「」を追加するとメモリが節約されるのはなぜですか?
大量のデータを含む変数を使用しましたString data。この文字列の一部を次のように使用したいと思います。 this.smallpart = data.substring(12,18); (メモリビジュアライザを使用して)数時間デバッグした後、objectsフィールドにsmallpartはのすべてのデータが記憶されていることがわかりましたがdata、部分文字列しか含まれていませんでした。 コードを次のように変更した場合: this.smallpart = data.substring(12,18)+""; ..問題は解決しました!現在、私のアプリケーションはメモリをほとんど使用していません! そんなことがあるものか?誰かがこれを説明できますか?this.smallpartはデータを参照し続けたと思いますが、なぜですか? 更新:では、 どうすれば大きな文字列をクリアできますか?data = new String(data.substring(0,100))はそれをしますか?
193
java
performance
string
memory