什么是序列化、反序列化?
Serialization(序列化)是一种将对象以一连串的字节描述的过程;
反序列化deserialization是一种将这些字节重建成一个对象的过程。
序列化通俗一点说就是能将Java对象转化成文本文件的一种方式。
什么情况下需要序列化 ?
a)当你想把的内存中的对象保存到一个文件中或者数据库中时候;
b)当你想用套接字在网络上传送对象的时候;
c)当你想通过RMI传输对象的时候;
如何实现序列化 ?
将需要序列化的类实现Serializable接口就可以了。
public class ArrayList implements java.io.Serializable{
}
ArrayList 这个类就实现了序列化,当然实现它的类很多,此处只举个例子。
jdk源码如下:
public interface Serializable {
}
是的,啥也没有,Serializable接口中没有任何方法,可以理解为一个标记,即表明这个类可以序列化。
所谓的Serializable,就是java提供的通用数据保存和读取的接口。至于从什么地方读出来和保存到哪里去都被隐藏在函数参数的背后了。这样子,任何类型只要实现了Serializable接口,就可以被保存到文件中,或者作为数据流通过网络发送到别的地方。也可以用管道来传输到系统的其他程序中。这样子极大的简化了类的设计。只要设计一个保存一个读取功能就能解决上面说得所有问题。
序列化前和序列化后的对象的关系
是 "=&#