为什么要进行对象的序列化?
程序运行以后,对象被实例化后,这个对象就存在于内存中了,如果要将该对象进行网络传递或将对象持久保存。位于内存中的对象的这种状态是无法在网络间传递的,不能像在内存中一样可以把对象作为参数传递。所以需要将这个对象实例的状态转换成二进制或文本的形式以便持久保存后在网络间传输(磁盘或网络I/O,数据传输都是以字节为单位的),这就是对象的序列化,也就是将对象转化为字节的过程。
如何实现序列化?
序列化的对象需要实现Serializable接口,这个接口是一个空的接口,只是一个标识,并不需要实现任何方法,implements 该接口后,表示当前这个类实例化后的对象都是可序列化的。
另外,序列化的对象中需要定义serialVersionUID,这个UID的作用是来标识这个对象,依据这个UID可完成对象的反序列化。即从序列化后的二进制中完整的还原出当时的对象。