2021-3-30 实体为什么要实现接口Serializable

1、写下刚刚遇到的的问题,为什么实体类要实现Serializable(已解决)
2、先了解下序列化和反序列化
网上解释说:序列化是指把Java对象转化为字符序列的过程,以下两种情况会使用到,需要把内存中的对象状态数据保存到一个文件或者数据库中的时候,这个场景是比较常见的,例如我们利用mybatis框架编写持久层insert对象数据到数据库中时;、网络通信时需要用套接字在网络中传送对象时,如我们使用RPC协议进行网络通信时(写操作)
反序列化是指把字符序列恢复为Java对象的过程(读操作),
在这个地方插入一句话,需要实现Serializable的类中,必须要要有属性serialVersionUID,因为安全机制问题,在序列化时的serialVersionUID和反序列化的serialVersionUID一定要对应,要不然会出错。
3、为什么要实现Serializable接口。
总结下来两段话话,如果你的对象实现这个接口的话,那他就能被ObjectOutputStream转换为字节流,同时也可以通过ObjectInputStream再将其解析为对象。
无论啥编程语言底层设计io操作都还是操作系统帮忙完成,而底层操作都是以io流的形式进行,写操作都涉及将编程语言数据类型转换为字节流,而读操作则又涉及将字节流转化为编程语言类型的特定数据类型。
Java作为一门面向对象的编程语言,对象作为其主要数据的类型载体,为了完成对象数据的读写操作,也就需要一种方式来让JVM知道在进行IO操作时如何将对象数据转换为字节流,以及如何将字节流数据转换为特定的对象,而Serializable接口就承担了这样一个角色。
推荐看原文!!

***无论那种语言,只要涉及到数据信息的读写,都需要进行序列化和反序列化***

参考文章:https://developer.51cto.com/art/201905/596334.htm

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值