【发布时间】:2013-07-30 01:56:55
【问题描述】:
我有一个简单的问题。
byte[] responseData = ...;
String str = new String(responseData);
String withKey = "{\"Abcd\":" + str + "}";
在上面的代码中,这三行是否占用了 3X 内存。例如,如果 responseData 为 1mb,则第 2 行将占用额外的 1mb 内存,然后第 3 行将占用额外的 1mb + xx。这是真的?如果没有,那么它将如何工作。如果是,那么解决此问题的最佳方法是什么。 StringBuffer 能帮上忙吗?
【问题讨论】:
-
我认为
GC是您唯一可以依靠的人。 -
问题是我收到 OutOfMemoryException 因为来自服务器的 byte[] 数据很大,这就是为什么我需要首先弄清楚我做错了什么,如果这里一切都很好并且没有因为这些线而创建额外的足迹,那么我会考虑其他方式。
-
假设 responseData 稍后没有引用并且它没有在静态范围内定义 GC 应该可以完成它的工作。
标签: java android string memory-management stringbuffer