Java中的序列化

Java中通过implements Serializable来实现对象的序列化。其实Serializable接口中并没有需要实现的方法,注明某个类implements Serializable只是为了标识或表明这个类可以被序列化。
那么什么是序列化呢,序列化又有什么作用呢?
一个类,或对象能够被序列化表明这个类或对象能过转化成数据流的形式。之所以要转化为数据流是为了在数据传输(特别是IO操作和网络传输)中对流化(序列化)的对象进行读写操作。也就是说序列化是为了解决在对对象流进行读写操作时所引发的问题。

JAVA中实现序列化的基本过程是:
(1)将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,
(2)然后使用一个输出流(如:FileOutputStream)来构造一个 ObjectOutputStream(对象流)对象
(3)接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写 出(即保存其状态),要恢复的话则用输入流。


[color=red]serialVersionUID作用: [/color]
序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。
有两种生成方式:
一个是默认的1L,比如:private static final long serialVersionUID = 1L;
一个是根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段,比如:
private static final long serialVersionUID = xxxxL;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值