在一次采访中,我被问到一个序列化文件,即.ser文件平台是独立的还是依赖的?为什么?我告诉他.ser文件与平台无关,但我不知道答案。请让我知道答案。
答案 0 :(得分:5)
是。它们与JVM绑定,JVM的内部操作与平台无关。除了有关JIT编译代码在CPU上运行时的外观以及类似内容的特定平台之外,无论硬件还是操作系统,兼容JVM之间都没有区别。因此,从您的角度来看,Java是所有这些平台上的Java,直到您拥有引用本机资源(代码,硬件等)的Java为止。
答案 1 :(得分:0)
取决于您如何定义平台。它独立于OS和JVM供应商(假设您明确声明“serialversionUID”)。 另一方面,标准Java库类可能会更改,因此未来的JVM版本将无法对它们进行反序列化。 (例如Swing课程)
但是如果你需要与.Net进行通信,你必须使用XML序列化(JAXB,XStream等),这是真正独立于平台的。
另见: