栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

原来我不懂java序列化

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

原来我不懂java序列化

java序列化,想必大家都很清楚吧。
不就是实现Serializable接口吗,目的就是为了将对象转为二进制,方便传输。你说对了,但事实往往没有这么简单

序列化和反序列化 序列化

序列化就是将对象的状态转为特定流的过程

  • 对象的状态:那么静态变量可以被转化吗,不可以,因为静态变量是数据类的而不是变量。
  • 流: 也就是转为字节序列
反序列化

获取特定流中数据重新构建对象的过程

什么时候使用序列化反序列化

大家都知道,对象是保存在内存中的,更准确的说是位于JVM中,生命周期收到JVM的限制,如果我们在另一个服务中使用该对象,或者将对象保存在硬盘上,就需要通过IO来处理,也就是序列化

  • 当我们将一个对象保存在硬盘上,之后可能会用的情况,会用要序列化。
  • 当一个服务,去调用另一个服务中的对象。因为该对象需要在网络上传输,所以也需要实现序列化。(建议微服务中所有pojo类都实现序列化接口)
序列化中注意点
  • serialVersionUID
    实现序列化的接口会默认生成一个serialVersionUID,反序列化时会对比流中serialVersionUID的值与对象的serialVersionUID,是否相等,不相等则会抛出serialVersionUID 异常。因为对象被修改,或者因为编译器的问题,可能会导致生成的serialVersionUID不同而出错。所以我们一定要手动的声明serialVersionUID。

    private static final long serialVersionUID = 1L;
    
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/832015.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号