相关疑难解决方法(0)

为什么将""附加到String保存内存?

我说,我使用了一个包含大量数据的变量String data.我想以下列方式使用此字符串的一小部分:

this.smallpart = data.substring(12,18);
Run Code Online (Sandbox Code Playgroud)

经过几个小时的调试(使用内存可视化器)后,我发现对象字段smallpart记住了所有数据data,尽管它只包含子字符串.

当我将代码更改为:

this.smallpart = data.substring(12,18)+""; 
Run Code Online (Sandbox Code Playgroud)

..问题解决了!现在我的应用程序现在使用很少的内存!

怎么可能?有谁能解释一下?我认为这个小部分一直在引用数据,但为什么呢?

更新: 如何清除大字符串呢?data = new String(data.substring(0,100))会做什么吗?

java memory string performance

193
推荐指数
5
解决办法
8137
查看次数

标签 统计

java ×1

memory ×1

performance ×1

string ×1