我正在开发一个适应服务器-客户端架构的项目。在客户端和服务器之间传输的消息是字符串和字节数组的组合。我需要事先发送整个消息的大小。
对于字节数组,找到它的字节大小很容易。但是对于字符串来说就不那么简单了。显然,我可以将这些字符串转换为字节数组(考虑到编码方式)。但是,这些字符串可能很长,我不想为它们分配内存(例如getBytes()会分配一个新数组)。
我的问题是,以下哪种方法最节省内存?
1. 找到一个字符串的字节大小(使用UTF-8编码) 2. 将该大小写入输出流 3. 将该字符串写入输出流
对于字节数组,找到它的字节大小很容易。但是对于字符串来说就不那么简单了。显然,我可以将这些字符串转换为字节数组(考虑到编码方式)。但是,这些字符串可能很长,我不想为它们分配内存(例如getBytes()会分配一个新数组)。
我的问题是,以下哪种方法最节省内存?
1. 找到一个字符串的字节大小(使用UTF-8编码) 2. 将该大小写入输出流 3. 将该字符串写入输出流
CharsetEncoder
可能是可行的(字节计数部分相对简单),但我认为在尝试证明最简单的方法不足以满足之前,值得尝试。 - Jon Skeet