序列化在网络传输的过程中是一个重要的部分
一、序列化和反序列化?
序列化是一种对象持久化的手段,普遍在网络传输,RMI(远程调用)等场景中应用。
Java平台允许我们在内存中创建可复用的Java对象,这些对象的存在只在JVM运行期间。但在实际应用中,就可能要求在JVM停止运行之后能够保存(持久化)指定的对象,并在将来重新读取被保存的对象。Java对象序列化就能够帮助我们实现该功能。
Java对象序列化可以把对象的状态保存为一组字节码,在使用时再将这些字节组装成对象(反序列化)。
二、如何对Java对象进行序列化与反序列化?
在Java中,只要一个类实现了java.io.Serializable
接口,那么它就可以被序列化 ObjectOutputStream
:IO 类,包含序列化对象的方法,writeObject()
ObjectInputStream
: IO 类,包含反序列化对象的方法,readObject()
serialVersionUID:
类属性,序列化版本号,用于给 JVM 区别同名类,没有提供版本号,JVM会默认提供序列化版本号。
transient
,关键字,