1.序列化:把对象从内存存储到文件中。
2.反序列化:把对象从文件中加载到内存中。
3.一个类要想被序列化,则需要实现java.io.serializable接口,该接口中没有定义任何方法,是一个标识性接口(Marker interface);当一个类实现了该接口,就表示这个类的对象是可以序列化的。
4.如果一个被序列化的对象a引用了其他对象b,那么b也是可以在a被序列化的同时被序列化。(即序列化具有传递性。)
5.当一个对象被序列化时,
a) 只会保存对象的非静态成员变量,不会保存任何的成员方法和static静态成员变量。
b) 如果这个对象的成员变量是一个对象,那么这个对象的数据成员也会被保存。
c) 如果这个对象包含了某个不可序列化的对象引用(用transient关键字修饰的),那么这个对象也不能被序列化。
6.序列化时用到的类,FileOutputStream,FileInputStream,ObjectOutputStream,ObjectInputStream,方法writeObject(),readObject()等。