java 串行化使用

串行化使用场景:

进行网络间对象传输及本地对象存储,此时应使用串行化,也称为序列化。

在java中我们知道如果我们想在本地存储一个对象,那么怎么操作呢?

在我们IO中有一个这样一对对象,ObjectInputStream,ObjectoutputStream,通过这两个类可以对我们的对象进行写入和读取。下面举起例子:

java 串行化使用_第1张图片

java 串行化使用_第2张图片

进行序列化注意:

在对javabean进行序列化时,首先javabean实现serializable接口(这是一个标识化接口,供jvm识别),,然后进行版本控制(具体版本生成信息跟我们的类路径及相关属性与方法等有关)。

网络间进行对象通信也需要序列化,在最近进行外网服务系统间相互调用使用到序列化与反序列化,开发中使用axis方式进行系统间对象通信,相关代码及详解请留言。

另外实现序列化还可以进行对象间深度复制,比如有这样一个对象链结构Person<--child<--pet<--cat这样一个对象链,我们想将这些对象存储到磁盘文件中,那么在使用objectOutputStream时要对相关对象进行串行化,否则将会抛出异常,jvm识别不了对象信息。那么如果我们不想串行化这么多链节点,我们只想person与child关系,那么只需在pet与cat类中将关联属性前增加transient进行修饰(声明此属性为临时,并不是持久化属性),此时pet,cat不实现serilizable接口,那么获取pet及cat属性时为默认值null.


你可能感兴趣的:(java)