在 Java 9 中,String 的内部表示已从字符数组更改为字节数组。
假设我在运行 Java 9 的系统上序列化我的字符串数据,然后尝试在 Java 8 系统上反序列化它。还要考虑反之亦然的情况。
我能想到的另一种情况是使用 RMI 或 JMS 在 Java 8 和 Java 9 系统之间传输 String 数据。
这些场景怎么可能奏效?是否所有处理 String 的方法都已升级以处理此类情况?
最佳答案
虽然 String
在内存中的表示确实发生了变化,但它的 Serializable
表示没有。您是否真的尝试过在 Java 9 中序列化 String
并在 Java 8 中反序列化它?我认为您不会遇到任何问题。
关于Java 9 Compact String Serialization-反序列化&数据传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45831019/