2013-10-18 45 views
1

在一次採訪中,我被問到是否一個序列化文件,即一個.ser文件平臺獨立或依賴,爲什麼?我告訴他,.ser文件是平臺獨立的,但我不知道答案。請讓我知道答案。序列化文件平臺是獨立的嗎?

回答

5

是的。它們與JVM綁定,JVM的內部操作與平臺無關。除了關於在CPU上運行的JIT編譯代碼的外觀以及類似的特定平臺之外,不管硬件或操作系統如何,兼容的JVM都沒有區別。因此,從您的角度來看,在您擁有引用原生資源(代碼,硬件等)的Java之前,Java是Java是所有這些平臺上的Java。

+0

好了,我錯了.. – user2895564

+0

對不起,我讀的是依賴於平臺。除了第一句話,我的意見與你的立場是一致的。 –

+0

是的,我明白了.. – user2895564

0

取決於您如何定義平臺。它獨立於操作系統和JVM供應商(假設您明確聲明「serialversionUID」)。另一方面,標準的Java庫類可能會改變,所以它們將不會被未來的JVM版本反序列化。 (例如Swing類)

但是,如果您需要與.Net進行通信,則必須使用真正與平臺無關的XML序列化(JAXB,XStream等)。

參見:

Is java object serialization compatible between 1.5 and 1.6