持久化对象的介绍:
“持久化”意味着对象的“生存时间”并不取决于程序是否在执行,持久化对象存在于对象每一次的调用之间,通过序列化一个对象,将其写入磁盘,以后程序每一次调用的时候都重新恢复那个对象,就能圆满实现一种“持久”的状态。
提供主要特征的支持:
远程方法调用使本来存在于其他机器的对象可以表现出好像在本地机器上的行为。将消息发给远程对象,需要通过对象序列化来传输参数和返回值。
使用一个Java Bean 时,它的状态信息通常在设计期间配置好,程序启动以后,这种状态信息必须保存下来,以便程序启动以后恢复;具体工作由对象序列化完成。
Serializable的一些说明:
想要对一个对象执行序列化处理,只需要对象实现Serializable接口即可。(该接口只是一个标记,没有方法)
序列化的对象包括基本数据类型,所有集合类以及其他许多东西,还有class对象。
对象序列化不仅保存了对象的"全景图",而且能追踪对象内包含的所有句柄并保存那些对象;接着又能对每个对象的句柄进行追踪。
使用transient关键字修饰的变量,在序列化对象的过程中,该属性不会被序列化。
序列化的步骤:
首先要创建某些OutputStream对象:OutputStream outputStream = new FileOutputStream(“output.txt”)
将其封装到ObjectOutputStream对象内:ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream);
此后只需调用writeObject()即可完成对象的序列化,并将其发送给OutputStream:objectOutputStream.writeObject(Object);
最后不要忘记关闭资源:objectOutputStream.close(), outputStream .close();
反序列化的步骤:
首先要创建某些OutputStream对象:InputStream inputStream= new FileInputStream(“output.txt”)
将其封装到ObjectInputStream对象内:ObjectInputStream objectInputStream= new ObjectInputStream(inputStream);
此后只需调用writeObject()即可完成对象的反序列化:objectInputStream.readObject();
最后不要忘记关闭资源:objectInputStream.close(),inputStream.close();