50,550
社区成员
发帖
与我相关
我的任务
分享
java.io.Serializable
//1. 如果放在源代码的注释部分,表示一个Java语言中的接口类
//2. 如果放在源代码的import区域,这是一个导入接口类的过程,说明后续代码要用到这个接口类
//3. 如果放在class声明的后半部分,implements的后面,说明当前class是可以支持Java特有的序列化操作的
之后就是解释什么是序列化操作,以及Java特有的序列化操作了。
1. 序列化操作是将内存中的对象转换成为可以传输的数据的过程。因为内存中的对象,本身具有其特有的存储结构,而这种结构是不便于进行传输的。
2. 常用的序列化方式有三种:二进制,JSON,XML。Java语言的序列化属于二进制序列化的一种。
3. Java的对象序列化过程默认会将对象的类名、版本、成员变量的值等信息依次进行写入操作,如果想编程增强写入过程,可以通过重写writeObject方法来实现。
4. 序列化过程是可逆的,逆过程称为反序列化。同理,可以通过重写readObject方法来增强读取过程。
5. writeObject方法和readObject方法的代码,是写在Serializable接口的实现类里面的。实现接口表明当前类支持序列化和反序列化,重写两个方法表明序列化和反序列化过程中有些地方需要特殊处理。
6. 序列化和反序列化的操作是通过 ObjectInputStream 和 ObjectOutputStream 来实现的。
public final void writeObject(Object x) throws IOException
public final Object readObject() throws IOException, ClassNotFoundException
java.io.ObjectInputStream
java.io.ObjectOutputStream