什么是Java中的Serializable?

10 java serialization

可能重复:
Serializable是什么意思?

我有

class Person implements Serializable {
}
Run Code Online (Sandbox Code Playgroud)

这有什么用,如果我只是使用会发生什么

class Person {
}
Run Code Online (Sandbox Code Playgroud)

Ric*_*d H 14

serializable是一个特殊的接口,指定该类是可串行的.它的特殊之处在于它不像普通接口那样定义任何必须实现的方法:它只是将类标记为可序列化.有关更多信息,请参阅Java 文档.

至于"可序列化"是什么意思,它只是意味着将类(对象)的实例转换为可以写入磁盘或可能通过网络传输的格式.例如,您可以将对象保存到磁盘并稍后重新加载,并保存所有字段值和内部状态.有关详细信息,请参阅维基百科页面.

  • 如果你是java新手.这是多态性的实际应用.如果一个类实现了一个接口,那么该类可以传递给它的父接口作为参数的任何地方.在这种情况下,子类可以传递给像Results.writeOutput(Serializable s)这样的函数 (3认同)
  • 但为什么有单独的界面.我的意思是将evrything序列化的危害是什么.我的意思是从定义来看,它一直都不好看.我的意思是有任何情况,如果我实现它,它会做一些damagae,这就是为什么java人使它成为可选的.最终evrything将在磁盘上 (2认同)

Mic*_*rdt 7

如果你从不序列化一个实例Person,那么声明是没有意义的implements Serializable.但是如果你不这样做并尝试序列化一个实例,你就会得到一个NotSerializableException.