为什么将 “” 附加到字符串可以节省内存?
我使用了一个包含大量数据的变量,比如说。我想按以下方式使用此字符串的一小部分:String data
this.smallpart = data.substring(12,18);
经过几个小时的调试(使用内存可视化工具),我发现对象字段记住了 中的所有数据,尽管它只包含子字符串。smallpart
data
当我将代码更改为:
this.smallpart = data.substring(12,18)+"";
..问题解决了!现在,我的应用程序现在使用的内存非常少!
这怎么可能?谁能解释一下?我认为这个小部分一直在引用数据,但为什么呢?
更新:那么我该如何清除大字符串呢?data = new String(data.substring(0,100)) 会做这个事情吗?