最佳答案
我使用了一个包含大量数据的变量,比如 String data
。
我想以下面的方式使用这个字符串的一小部分:
this.smallpart = data.substring(12,18);
经过几个小时的调试(使用内存可视化工具) ,我发现对象字段 smallpart
记住了来自 data
的所有数据,尽管它只包含子字符串。
当我把代码改成:
this.smallpart = data.substring(12,18)+"";
. . 问题解决了! 现在我的应用程序使用很少的内存!
这怎么可能? 有人能解释一下吗? 我想这个.smallpart 一直在引用数据,但是为什么呢?
更新: 那么我如何清除大字符串呢? data = new String (data.substring (0,100))会做这件事吗?