看完http://geekexplains.blogspot.com/2008/06/diff-between-externalizable-and.html上的文章后,我知道Externalizable比Serializalable更好,因为它提供了对代码的更好控制,而且速度更快。因此,在不更改类定义的情况下,应该使用Externalizable而不是Serializable。但是当我在任何项目中看到时我发现只使用Serializable接口(interface)。是无知还是Serializalable可以提供我所缺少的其他优势?
最佳答案
Serializable的优点是它易于实现,并且可以灵活地进行更改(在大多数情况下,您要做的就是更新serialversionUID)。可外部化要求程序员实际进行工作,并且每次类的内容更改时都要做更多的工作。正如您链接到的文章所指出的那样,实现Externalizable也容易出错。因此,从利用有限的程序员时间的角度来看,可序列化通常是一个更好的选择。
关于可序列化和可外部化的设计方式的好处是,您可以推迟实现“可外部化”的决定,直到明显出现性能问题为止,并且可以仅针对存在问题的那些类有选择地实现它。
关于java - 可外部化或可序列化?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7221303/