【发布时间】:2010-07-10 00:22:01
【问题描述】:
除了使用new String(bytearray)之外,还有其他方法可以将字节数组转换为字符串吗?确切的问题是我通过 UDP 连接在网络上传输一个 json 格式的字符串。在另一端,我在一个固定大小的字节数组中接收它(因为我不知道数组大小)并从字节数组中创建一个新字符串。如果我这样做,我分配的整个内存都是不必要的。
为了避免这种情况,我将字节数组转换为字符串,将字符串截断到最后一个有效字符,然后将其转换为字节数组并从中创建一个新字符串。如果我这样做,它只会用完所需的内存,但垃圾收集频率会变得如此之高,因为它涉及更多数量的分配。做这个的最好方式是什么?
【问题讨论】:
-
字节数组的编码是什么?
-
目的地是什么?您可能希望立即将其写入目的地,而不是在
byte[]或String中进行中介。
标签: java string performance bytearray