序列化和反序列化注意事项
- 要序列化的类必须要实现Serializable接口
- 序列化类中对象属性也要实现Serializable接口
- serialVersionUID:序列化版本号ID,用于保证序列化的类和反序列化的类是同一个类
如上图所示:添加序列化版本号ID以后发现反序列化报异常,因为之前进行序列化和反序列化时并没有添加版本号,反序列化时会自动生成一个版本号ID,此时再自己添加一个版本号ID,后续自己添加的ID肯定和自动生成的ID是不同的,系统就认为序列化的类和要进行反序列化的类不是一个类,自然报异常
把自动生成的ID赋给自定ID即可成功反序列化
-
使用transient修饰属性,这个属性就不会被序列化了
如上图所示,年龄属性没有被序列化,反序列化不出来 -
静态属性是不能被序列化的
-
一次性序列化多个对象:把多个对象加入到一个集合当中,直接序列化这个集合即可(反序列化时记得要强转类型)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律