今天给各位分享javaserializable接口的知识,其中也会对实现serializable接口进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、java serializable 接口为什么没有接口方法2、关于java Serializable接口的问题3、Serializable接口怎么用?
java serializable 接口为什么没有接口方法
serializable接口是表示实现该接口的类是可序列化和反序列化的 ,仅仅标识着这个类是可序列化和反序列化的, 当一个实现序列化的方法序列化一个类时, 他需要的只是一个serializable接口类, 我们将需要序列化的类实现seralizable接口才可以将其序列化
关于java Serializable接口的问题
是返回一个序列化对象,返回序列化对象的目的是为了用instanceof进行比较。
上面的意思就是说o是object对象,当调用add方法的时候o就实现了序列化,是一个序列化的对象,就可以调用instanceof进行判断
再说说为什么要实现序列化:
其实很简单,我们平时说的int,double等等类型的数据之所以能保存到电脑上,而且还可以再读出来,就是因为他们的包装类interger,double等实现了序列化。所以我们就可以用输入输出流进行操作,而且属性不会变。如果我们想把一个对象进行这样的操作,那么我们就必须让这个对象实现序列化。
不知道你明白了没有。。。其实网上好多这方面的解释,多看看肯定会明白的。。。
Serializable接口怎么用?
public interface Serializable类通过实现 java.io.Serializable 接口以启用其序列化功能。未实现此接口的类将无法使其任何状态序列化或反序列化。可序列化类的所有子类型本身都是可序列化的。序列化接口没有方法或字段,仅用于标识可序列化的语义。
例如:当遍历一个图形时,可能会遇到不支持可序列化接口的对象。在此情况下,将抛出 NotSerializableException,并将标识不可序列化对象的类。
在序列化和反序列化过程中需要特殊处理的类必须使用下列准确签名来实现特殊方法:
private void writeObject(java.io.ObjectOutputStream out)
throws IOException
private void readObject(java.io.ObjectInputStream in)
throws IOException, ClassNotFoundException;
writeObject 方法负责写入特定类的对象的状态,以便相应的 readObject 方法可以还原它。通过调用 out.defaultWriteObject 可以调用保存 Object 的字段的默认机制。该方法本身不需要涉及属于其超类或子类的状态。状态是通过使用 writeObject 方法或使用 DataOutput 支持的用于基本数据类型的方法将各个字段写入 ObjectOutputStream 来保存的。
简介如下:
public interface Serializable类通过实现 java.io.Serializable 接口以启用其序列化功能。未实现此接口的类将无法使其任何状态序列化或反序列化。可序列化类的所有子类型本身都是可序列化的。序列化接口没有方法或字段,仅用于标识可序列化的语义。
要允许不可序列化类的子类型序列化,可以假定该子类型负责保存和还原超类型的公用 (public)、受保护的 (protected) 和(如果可访问)包 (package) 字段的状态。仅在子类型扩展的类(父类)有一个可访问的无参数构造方法来初始化该类的状态时,才可以假定子类型有此责任。如果不是这种情况,则声明一个类为可序列化类是错误的。该错误将在运行时检测到。
在反序列化过程中,将使用该类的公用或受保护的无参数构造方法初始化不可序列化类的字段。可序列化的子类必须能够访问无参数的构造方法。可序列化子类的字段将从该流中还原。
关于javaserializable接口和实现serializable接口的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。