【发布时间】:2014-10-25 12:54:47
【问题描述】:
我正在序列化 Java 中的字符串对象。现在我想知道字符串中每个序列化字符的大小。
标准英文字母(例如“a”或“G”)是否只需要 1 或 2 个字节,而逗号或感叹号等特殊符号需要 8 个字节?
但是序列化字符串中有多少字节需要数字符号(0 - 9)?
编辑:我按以下方式进行序列化:
socket = new Socket(host, port);
ObjectOutputStream outputStream = new ObjectOutputStream(new BufferedOutputStream(socket.getOutputStream()));
outputStream.writeObject(request);
outputStream.flush();
使用 ObjectInputStream 以类似的方式完成反序列化。
要序列化(请求)的对象包含一个字符串类型的字段,例如可以是“aaaa”或“aAaA”或“a0A3a5”等(即大小写字母和数字)。
【问题讨论】:
-
Java 中的 'char' 是 16 位无符号值。这是没有符号位的两个字节。您可以通过阅读文档找到这一点。
-
这里是原始数据类型的链接:docs.oracle.com/javase/tutorial/java/nutsandbolts/…
-
您说的是 UTF-8,它是一种可变长度的 unicode 编码。字符长度取决于您用于序列化数据的编码。因此,如果您告诉我们您如何序列化您的数据,我们可以回答。
-
@nomoa 我已经编辑了我的帖子,现在显示了序列化
标签: java serialization