让我这样说吧:
What does JVM understands when it see a class implementing Serializable
为处理此问题而编写的代码是什么? (如果类是Serializable)
答案 0 :(得分:2)
许多类无法被序列化 如何序列化UI元素或网络套接字或线程?
答案 1 :(得分:1)
您无需序列化(或)保存每个对象的状态。这没有意义。另一个原因可能是,默认情况下,作者可能会认为让程序员决定。以下是来自java团队的有趣讨论。
要求类实现的决定 java.io.Serializable接口不是轻率的。设计叫做 在开发人员的需求和需求之间取得平衡 系统能够提供可预测和安全的机制。该 最困难的设计约束是满足安全和 Java类的安全性。
如果要将类标记为可序列化,那么设计团队 担心开发人员,出于健忘,懒惰或 无知可能不会将类声明为Serializable然后 使该类对RMI或持久性目的无用。我们 担心这个要求会给开发者带来负担 知道将来如何使用某个班级,a 基本上未知的情况的确,我们的初步设计为 反映在alpha API中,得出的结论是默认情况为 class应该是类中的对象可序列化。我们 后来只有在安全性和正确性之后改变了我们的设计 考虑因素使我们确信默认必须是一个对象 不被序列化。
答案 2 :(得分:0)
有很多类的例子不能被序列化,而不仅仅是GUI中的那些。
来自java.lang
ClassLoader,Compiler,Math,Package,Process,Runtime,Shutdown,StrictMath,System,Thread,ThreadGroup,ThreadLocal,Void