OpenJDK 和 Oracle JDK 兼容序列化是否明智?

Are OpenJDK and Oracle JDK compatible serialization wise?

你能用 OpenJDK 安全地反序列化一些我们通过 Oracle JDK 序列化得到的二进制数据吗? (反之亦然)

让我们假设 java 版本相同(并且 class 代码可用,并且在两个阶段都是相同的)。

Oracle JVM 序列化对象的确切方式是否被视为 public 信息?

扩展@morgano、@RealSkeptic 和@EJP(应该给予荣誉)的评论:是的,Java 对象序列化由 an official specification 指导,即 [=14] =],所以任何做序列化的JVM实现都应该符合它,否则就不能称为JVM。

我会说这并不完全安全。在我的 Android 应用程序中,我无法反序列化已在 Android 6 设备上序列化的 Android 7 设备上的数据。显然,Google 在 Android 7 中切换到了 OpenJDK。 我得到的错误是:

java.io.StreamCorruptedException: invalid type code: 71

This problem was reported here in a similar fashion

这会带来很大的问题,因为我的应用程序通过互联网发送序列化数据,如果它在 Android 6(或更低)和 Android 7 上运行,它将不兼容。