前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Java】序列化与反序列化

【Java】序列化与反序列化

作者头像
CODER-V
发布2023-03-07 21:01:23
6230
发布2023-03-07 21:01:23
举报
文章被收录于专栏:藏经阁藏经阁

1. 对象的序列化机制是什么?

对象序列化机制允许把内存中的Java对象转化成语平台无关的二进制流,从而允许把这种二进制流持久的保存在磁盘上,或通过网络将这种二进制流传输到另一个网络节点。

当其他程序获取了这种二进制流,就可以恢复成原来的Java对象。

2. Java自定义类序列化要求:

  1. 自定义类需要实现接口:Serializable(标识接口:无任何属性或抽象方法),否则会报NotSerializableException 异常
  2. 要求自定义类声明一个全局常量:static long serialVersionUID = 42234234L;
    • 该常量必须是:static long 类型的,对权限修饰符没有要求
    • 该常量用于唯一标识该类,所以每个类的常量值都一样保持不一致
  3. 要求自定义类的各个属性也必须是可以序列化的:
    • 对于基本数据类型:默认就可以序列化,因为底层已经实现类了Serializable接口
    • 若某个属性是引用数据类型:那么这个属性所在类也要求实现Serializable接口

3. 注意点:

  1. 如果没有声明全局常量serialVersionUID,系统也会自动声明一个针对于当前类的serialVersionUID。 但是,当此类发生任何修改,都会导致serialVersionUID被修改,进而导致反序列化时,出现InvalidClassException异常。
  2. 若某个属性不想被序列化,则该属性必须注明是瞬态的,使用transient关键字修饰。
  3. 静态(static)变量的值不会序列化。因为静态变量的值不属于某个对象 是属于类的。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 对象的序列化机制是什么?
  • 2. Java自定义类序列化要求:
  • 3. 注意点:
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档