在java中,对象的序列化实现的轻量级持久化(lightweight persistence)和通过数据库的对象持久化。
对象的序列化是指通过实现serializable接口将对象转换成字节序列,并且能够在以后将这个字节序列完全恢复为原来的对象。
在这种轻量级持久化中对象必须在程序中显示的序列化和反序列化还原。过程如下:
序列化:ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream("worm.out"));
out.writeObject(w);
out.close;
反序列化:ObjectInputStream in=new ObjectInputStream(new FileInputStream("worm.out"));
Worm w2=(Worm)in.readObject();
在java中对象的序列化支持两种主要特性:1远程方法调用(remote Method Invocation RMI)它使其他计算机中的对象使用起来就像是存活在本机中的一样,当
远程对象发送消息时,需要通过对象序列化发送参数列表和返回值。
2.对java bean的支持,使用一个bean时,一般是在设计阶段就对它的状态进行配置,这种状态需要保存下来,然后在程序启动后恢复,这就需要对象序列化来完成。
持久化面向对象语言中对象持久化有几种方法:1.按类持久:声明一个类是持久的,有些数据库是该类的所有对象默认为持久对象,有些数据库是该类的所有对象可以被持久化
2.按创建持久,引入新的语法,则由创建非持久对象的语法,也增加了创建持久对象的语法。
3.按标志持久,在程序终止前显示的将这个对象标志为持久的
4.按可达性持久,当且仅当它们可以通过一个或者多个引用序列可达时,它们才是持久的。
数据库中寻找对象的方法有几种:1,对象命名
2,将对象标识符或指向对像的持久化指针暴露出来,使它们可以再外部存储
3,存储对象的集合体,并允许程序在集合体上迭代寻找所需对象。