1、为何要序列化?
-- 把内存中的java对象能够在磁盘上持久保存
-- 通过网络传输对象
-- 通过RMI(Remote Method Invocation 远程过程调用)传输。
通过序列化可以把对象转化为与平台无关的二进制流,在重新使用前进行反序列化,重新转化为java对象。
(远程过程调用针对分布式Java应用,对开发人员屏蔽不同JVM和网络连接等细节,是的分布在不同JVM上的对象似乎存在于一个统一的JVM中,能够方便的通讯)
2、如何让Java对象可以被序列化?
在java里只需让目标类实现Serializable接口,无须实现任何方法。Serializable接口是一种标记接口,用来标明某个类可以被序列化。
3、如何使用序列化与反序列化?
序列化:使用ObjectOutputStream对象输出流的writeObject()方法,可以把对象写到输出流中。
反序列化:使用ObjectInputStream对象写入流的readObject()方法,并强制转换为已知的目标类即可。
4、对象引用的序列化
如果一个类Person某个成员变量引用了其他类(如class PersonInfo)。即:
class Person implements Serializable{
String name;
PersonInfo info;
}
如果想将Person类进行序列化,那么必须要满足:PersonInfo类也能够序列化,即也实现了Serializable接口,
class PersonInfo implements Serializable










