参考文献:《Java疯狂讲义》(第三版)
对象序列化
对象序列化的目标是将对象保存到磁盘中,或允许在网络中直接传输对象。
对象序列化机制允许内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久地保存在磁盘上,通过网络将这种二进制流传输到另一个网络节点。其他程序一旦获得这种二进制流,都可以把这种二进制流恢复成原来的Java对象。
对象的序列化(Serialize)指将一个Java对象写入IO流中,与此对应的是,对象的反序列化则指从IO流中恢复成Java对象
接口Serializable
接口Externalizable
所有可能在网络上传输的对象的类都应该是可序列化的,否则程序将会出现异常,比如RMI(远程方法调用,JavaEE基础)过程中的参数和返回值;
所有需要保存到磁盘里的对象的类必须可序列化,比如Web应用中需要保存到HttpSession或ServletContext属性的Java对象。
可序列化步骤:
1、创建一个ObjectOutputStream,这个输出流是处理流,必须建立在其他节点流的基础上
2、调用ObjectOutputStream对象中的writeObject()方法输可序列化对象
自定义序列化
通过在实例变量前使用transient关键字修饰,可以指定Java序列化时无需理会该实例变量。