我有一个蓝牙连接到一个以字节数组形式发送数据的设备。然后将字节数组更改为具有新String(byte [],offset,bytecount)的字符串。问题是数据被接收了数百次并且垃圾收集似乎没有完成它的工作,因为在大约1000次循环之后,我得到了内存不足的字节分配错误。随着循环的增加,应用程序开始越来越滞后。
有没有办法在我使用它之后立即释放新字符串对象的内存或更好,有没有办法将字节数组更改为字符串 甚至是浮点数 而不创建新对象?
更糟糕的情况是,有没有办法为应用程序提供更多内存,以便错误发生得更晚?
答案 0 :(得分:0)
如果您将数据读入char[]
,并在读取更多数据时重复使用该数组,则内存占用空间非常小。
另外,请查看此页面:http://www.javamex.com/tutorials/memory/string_memory_usage.shtml