问:任何人都可以提供帮助,Serializable接口不包含任何成员,也称为标记接口,但是要保留必须实现可序列化接口的任何对象,我想详细了解serialzable接口。请发布答案。
答:它是一个标记器接口,没有诸如Serializable,Clonneable等之类的方法。这些标记器接口指示JVM或编译器的想法。如果JVM看到Clonnable接口,它将执行某些操作以支持克隆。同样适用于Serializable和其他标记接口。
答:Java中的标记接口:
标记接口是没有成员的接口。也就是说,我们没有在标记界面内定义任何方法或数据成员。它也称为标签接口。
想到一个非常明显的问题:如果在此接口内没有定义成员,那么此接口的用途是什么?答案是:
这用于向编译器/ JVM提供特定信号,以根据定义的标记器接口的类型执行各种操作。
也可以有其他选择,但是通过使用这种选择可以避免复杂性,使用此接口可以使代码更加有条理和可读性。
它的作用与Java中的注释相似。
标记接口示例:
java中的可序列化接口:
让我们首先定义序列化:
序列化:
这是一个以字节流形式转换对象的过程。即对象可以保存为字节流。
目的: 字节流是一种独立于平台的形式,因此,只需反序列化特定平台的代码,即可在一个平台上序列化的代码可以在其他平台上使用。
它可以用于多种目的,例如:
将数据写入磁盘
将数据存储在内存中
字节流可以BLOB形式存储在DB中
为了实现序列化的目的,我们必须使用java.io.serializable接口:
它是Java中标记接口的类型之一。当一个类需要序列化时,它的作用就发挥了作用。
它定义为java.io.Serializable。
当您的班级需要序列化时,可能会出现需求。因此,您应该通知编译器,可能会序列化特定的类。
因此,为此目的,特定类必须实现Serializable标记接口。通过实现这一点,特定的类被标记为可序列化的。
如果超类已经实现java.io.Serializable接口,则默认情况下该子类可序列化。
在Java 1.5之后,由于引入了注释,这些接口的使用已变得过时。由于它提供了各种附加功能,因此它是进行序列化的更好而有效的方式。可以通过在需要序列化的类名之前添加@Serializable批注来实现。