java blog

1、序列化和反序列化的定义:

   (1)Java序列化就是指把Java对象转换为字节序列的过程

    Java反序列化就是指把字节序列恢复为Java对象的过程。

  (2)序列化最重要的作用:在传递和保存对象时.保证对象的完整性和可传递性。对象转换为有序字节流,以便在网络上传输或者保存在本地文件中

2、序列化方法:

 

方法一:若类实现了serializable接口,则可以通过objectOutputstream和objectInputstream默认的序列化和反序列化方式,对非transient的实例变量进行序列化和反序列化。

方法二:若s类实现了serializable接口,并且定义了writeObject(objectOutputStream out)和

readObject(objectinputStream in)方法,则可以直接调用student类的两种方法进行序列化和反序列化。
比如:

1.先创建一个继承了serializable类的类

2.确定操作的文件并打开objectinputstream流

3.操作read()读入数据(对象),把类的对象序列化到txt文件(E:\\JavaXuLiehua\\Student\\Student1.txt)中,并对文件进行反序列化:

4.关闭objectinputstream流

会发现文件里的内容是不容易阅读的,只能通过反序列化读取。 

3、transient关键字、serialVersionUID

     ----serialVersionUID是序列化前后的唯一标识符(默认如果没有人为显式定义过serialVersionUID,那编译器会为它自动声明,序列化后如果修改代码则无法反序列化)

      ----transient关键字可以让serialVersionUID不被修改

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值