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

Cur*_*der 6 java string serialization rmi java-9

在Java 9中,String的内部表示已从char数组更改为byte数组.

考虑我在运行Java 9的系统上序列化我的String数据,然后尝试在Java 8系统上反序列化它.还要考虑反之亦然的情况.

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

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

Gil*_*ili 6

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


use*_*421 5

你可以依赖Java而不是破坏像这样基本的东西.例如,String通常是序列化的DataOutput.writeUTF().这种表示没有改变.