当通过重写writeObject()和readObject()可以进行自定义序列化时,java Externalization的用途是什么?

时间:2019-07-10 07:08:25

标签: java serialization serializable externalizable

我正在学习Java序列化,并且我怀疑,如果可以通过重写类中的writeObject()和readObject()方法来自定义默认序列化过程,那么Externalizable接口的用途是什么?在哪种情况下需要?

1 个答案:

答案 0 :(得分:0)

它用于自定义序列化,请参见Guide to the Externalizable

主要用法:

  

更改JVM的默认序列化行为。

用例:

  

如果需要序列化整个对象,则Serializable接口更合适。另一方面,对于自定义序列化,我们可以使用Externalizable控制过程。

可能的性能优势:

  

java.io.Serializable接口使用反射和元数据,这会导致性能相对较慢。相比之下,Externalizable接口可让您完全控制序列化过程。