序列化是对象状态持久化的过程,这意味着对象的状态被转化为字节流并且保存在文件中.同样我们用反序列化的概念来从字节流中恢复对象,这是java编程中的重要概念因为序列化大量运用于网络编程中.需要通过网络传输的对象必需要进行序列化转换为字节流之后才能传输,因此所对应的类和接口必须实现Serilization接口。这个接口没有任何方法,只是一个标记接口.
默认情况下,对象的所有成员变量都将被持久化.在某些情况下,如果你想避免持久化对象的一些成员变量,你可以使用transient关键字来标记他们,transient也是java中的保留字.
java有个特点就是序列化,简单地来说就是可以将这个类存储在物理空间(当然还是以文件的形式存在),那么当你从本地还原这个文件时,你可以将它转换为它本身.这可以极大地方便程序中操作.同时,因为涉及到安全问题,所以并不希望把类里面所有的属性都能存储(因为那样,别人可以通过序列化知道类里面的内容),那么我们就可以用上transient这个关键字,它的意思是临时的,即不会随类一起序列化到本地,所以当还原后,这个关键字定义的变量也就不再存在.