首先序列化是将对象转化为流,以便于传输的一种方式,而反序列化则是进行相反的操作。
需要用到序列化的情况:
把的内存中的对象保存到一个文件中或者数据库中时候;
用套接字在网络上传送对象的时候;
通过RMI传输对象的时候。
Java中想要实现序列化只需要将类实现Serializable接口,而该接口内没有要实现的方法,它只是为了标明对象是可序列化的。
想要序列化一个对象就要把某一OutputStream封装到ObjectOutputStream中,调用writeObject()方法,即可实现序列化。
反序列化相同:将InputStream封装到ObjectInputStream中,并调用readObject()方法。
注:
对象序列化前后地址不同,内容相同,所包含的引用也相同。
static不能被序列化。
继承一个可被序列化的对象,这该对象也可被序列化。