Java中什么是可序列化的?

Java中什么是可序列化的?,java,serialization,Java,Serialization,可能重复: 我有 class Person implements Serializable { } 这有什么用?如果我只是使用 class Person { } 基本上,它是一个标记接口,表示您的类可以序列化。有关更多信息,请参阅。这是一个将此类声明为的示例。您应该了解这一主题,因为数百篇教程和文章已经充分涵盖了这一主题。你甚至可以。简而言之,序列化是指从流(如文件或网络套接字)读取和写入整个对象图。如果您从未序列化Person的实例,则声明实现可序列化是没有意义的。但是如果您不这样做并尝

可能重复:

我有

class Person implements Serializable {
}
这有什么用?如果我只是使用

class Person {
}

基本上,它是一个标记接口,表示您的类可以序列化。有关更多信息,请参阅。

这是一个将此类声明为的示例。您应该了解这一主题,因为数百篇教程和文章已经充分涵盖了这一主题。你甚至可以。简而言之,序列化是指从流(如文件或网络套接字)读取和写入整个对象图。

如果您从未序列化
Person
的实例,则声明
实现可序列化是没有意义的。但是如果您不这样做并尝试序列化实例,您将得到一个可序列化的接口。

Serializable只是一个标记接口。它完全为空。它只允许序列化机制验证该类是否能够持久化

另请参见下面的说明:

类的可序列化性由实现java.io.Serializable接口的类启用未实现此接口的类将不会对其任何状态进行序列化或反序列化。可序列化类的所有子类型本身都是可序列化的。序列化接口没有方法或字段,仅用于标识可序列化的语义


基本上,它是java中序列化类必须实现的接口。

序列化确保数据可以通过网络发送,并且可以使用序列化/反序列化机制持久化并恢复到原始状态。

serializable是一个特殊接口,指定类是可序列化的。它的特殊之处在于,与普通接口不同,它没有定义任何必须实现的方法:它只是将类标记为可序列化的。有关更多信息,请参阅Java


至于“serializable”是什么意思,它只是指将类(对象)的实例转换为可以写入磁盘或可能通过网络传输的格式。例如,您可以将对象保存到磁盘,稍后重新加载,并保存所有字段值和内部状态。有关更多信息,请参阅维基百科。

首先,您会遇到一个语法错误,因为您没有关闭括号。每个人都提到serialize,但该词的实际含义是什么???@Pasha serialization是将数据结构或对象转换为可存储格式的过程(例如,在文件或内存缓冲区中,或通过网络连接链路传输)和“恢复”后来在同一个或另一个计算机环境中。当根据序列化格式重新读取产生的一系列位时,它可以用来创建原始对象的语义相同的克隆。但是为什么会有单独的接口。我的意思是,使每件事都可序列化有什么危害。我的意思是,从定义上看,它确实如此一直使用它看起来不错。我的意思是,如果我实现了它,它是否会有一些问题,这就是为什么java用户将其设置为可选的。最终evrything会出现disk@Pasha-因为对于某些对象来说,可序列化是没有意义的。还有性能方面的考虑。请阅读此仅供参考:如果您是java新手。这是多态性的一个实际应用。如果一个类实现了一个接口,那么该类可以被传递到任何可以接受其父类作为参数的地方。在这种情况下,子类可以被传递到诸如Results.writeOutput(可序列化的s)之类的函数