Java默认序列化具有长级别和字段名称



我的问题是,Java序列化如何工作?我正在序列化具有长类名称和长字段名称的类的100_000个对象。然后,与其他简短的类/字段名称的课程花费更多的时间。那么Java序列化是否将类和字段名称与每个对象写入字段名称?或者只是每个对象的字段名称?

java在序列化流中的每个类写了一类描述符。类描述符包括字段类型的类名称,字段名称和类名(或对类名称的引用)。

对象的类描述符嵌入到流中该类的第一个对象的对象中。同一类的后续对象仅包含对类描述符的引用。

字段名称仅显示在类描述符中。对象的字段值表示为值数组。没有名字。

可能(尽管从规格中不明显)类上的类名称被删除。

有关更多详细信息,请参阅对象序列化流协议规范。


这意味着长的类和字段名称将使序列化更长,但不应重复重复名称。

与其他带有简短类/字段名称的课程要花费更多的时间。

如果(正如您似乎在说)您将同一类的100个对象放入流中,那真是令人惊讶。

最新更新