我知道我们可以通过覆盖 readObject() 和 writeObject() 来自定义序列化。但是有什么需要这样做呢?用例 ?
此外,Externalizable 接口也只是提供自定义序列化的一种方式,还是有其他用途?
我知道我们可以通过覆盖 readObject() 和 writeObject() 来自定义序列化。但是有什么需要这样做呢?用例 ?
此外,Externalizable 接口也只是提供自定义序列化的一种方式,还是有其他用途?
用例,在我的脑海中:
Externalizable 的 javadoc 解释了它的用途。
一个熟悉的实践例子:HashMap
. 它有很多复杂的内部结构,但有一个相当简单的 API,甚至包括自定义参数。如果它使用默认序列化,则必须序列化大量冗余信息:空桶、桶的空部分、数组中的所有索引等。
相反,HashMap
它定义了一个简单而直接的序列化形式,它传输所有且不超过在另一端重建它所需的数据。