序列化
序列化是指把一个Java对象变成二进制内容,本质上是一个byte[]数组。便于将Java对象存储到本地文件中。
反序列化
把一个二进制内容(byte[]数组)变为Java对象。
反序列化时,有JVM直接构造出Java对象,不调用构造方法。
安全性:因为Java的序列化机制可以导致一个实例能直接从byte[]数组创建,而不经过构造方法,因此,它存在一定的安全隐患。一个精心构造的byte[]数组被反序列化后可以执行特定的Java代码,从而导致严重的安全漏洞。
实现序列化
一个Java对象要能序列化,必须实现一个特殊的接口java.io.Serializable,里面没有任何方法。