1

正如标题所说,我不能与getBytes[]withserialization mechanism不同String。以下是 和 之间的getBytes[]测试serialization mechanism

    public void testUTF() {

        byte[] data = SerializeUtil.serUTFString(str);
        System.out.println(data.length);
        System.out.println(str.getBytes().length);
    }

这里是SerializeUtil

公共静态字节[] serUTFString(字符串数据){

byte[] result = null;
ObjectOutputStream oos = null;
ByteArrayOutputStream byteArray = new ByteArrayOutputStream();
try {
    oos = new ObjectOutputStream(byteArray);
    try {
        oos.writeUTF(data);
        oos.flush();
        result = byteArray.toByteArray();
    } finally {
        oos.close();
    }
} catch (Exception e) {
    e.printStackTrace();
}

return result;

}

当我设置str为 时Redis,两者都可以正常工作,但getBytes[]似乎更有效率。既然他们都返回一个byte arrayfrom String,有什么区别,有serialization必要吗?

4

1 回答 1

2

String.getBytes() 返回一个字节数组,以默认编码表示字符串字符。ObjectOutputStream.writeUTF 以修改后的 UTF-8 格式写入字符串长度和字节,请参阅 java.io.DataOutput API。

于 2013-05-26T02:34:28.950 回答