Java 9 Compact String Serialization-反序列化&数据传输

Java 9 Compact String Serialization-deserialization & data transfer

在 Java9 中,String 的内部表示已从字符数组更改为字节数组。

假设我在系统 运行 Java 9 上序列化我的字符串数据,然后尝试在 Java 8 系统上反序列化它。还要考虑反之亦然的情况。

我能想到的另一种情况是使用 RMI 或 JMS 在 Java 8 和 Java 9 系统之间传输字符串数据。

这些场景怎么可能奏效?是否所有处理 String 的方法都升级以处理此类情况?

虽然 String 在内存中的表示确实发生了变化,但它的 Serializable 表示没有。您是否真的尝试过在 Java 9 中序列化一个 String 并在 Java 8 中反序列化它?我认为您 运行 不会遇到任何问题。

您可以放心 Java 不会破坏像这样基本的东西。例如,String 通常通过 DataOutput.writeUTF() 序列化。这种表示没有改变。