java中的序列化、反序列化、serializable
文章目录序列化示例serialVersionUID的作用是什么?不写serialVersionUID会有什么问题?某个字段不想序列化怎么办?序列化有哪些要求?比较基础的概念也记录下。概念将内存中的对象状态转换成某种可以存储或传输的格式如二进制、文本(json、xml)等。序列化 对象-可存储或传输格式反序列化可存储或传输格式-对象序列化示例1、定义User类importjava.io.Serializable;// 实现 Serializable 标记接口publicclassUserimplementsSerializable{// 序列化版本号用于验证版本一致性privatestaticfinallongserialVersionUID1L;privatetransientStringname;privateintage;publicUser(Stringname,intage){this.namename;this.ageage;}OverridepublicStringtoString(){returnUser{namename, ageage};}}2、序列化和反序列化代码importcom.example.demo.entity.User;importjava.io.*;publicclassSerializationDemo{publicstaticvoidmain(String[]args){UserusernewUser(Alice,25);StringfileNameuser.ser;// 1. 序列化将对象写入文件try(ObjectOutputStreamoosnewObjectOutputStream(newFileOutputStream(fileName))){oos.writeObject(user);System.out.println(序列化成功: user);}catch(IOExceptione){e.printStackTrace();}// 2. 反序列化从文件读取并还原对象try(ObjectInputStreamoisnewObjectInputStream(newFileInputStream(fileName))){// readObject() 返回的是 Object 类型需要强转为 UserUserdeserializedUser(User)ois.readObject();System.out.println(反序列化成功: deserializedUser);}catch(IOException|ClassNotFoundExceptione){e.printStackTrace();}}}serialVersionUID的作用是什么?用于标识这个类是同一个类避免因修改属性等造成jvm认为不是同一个类而反序列化失败的问题。不管什么类用如下固定写法就行jvm会自动处理// 序列化版本号用于验证版本一致性privatestaticfinallongserialVersionUID1L;不写serialVersionUID会有什么问题?不写serialVersionUID的情况下假如场景如下1、User类先进行了序列化。2、后来加了一个属性email因为类结构发生变化jvm会重新计算hashcode生成一个全新serialVersionUID这样在反序列化时就会失败。代码StringfileNameuser.ser;// 2. 反序列化从文件读取并还原对象try(ObjectInputStreamoisnewObjectInputStream(newFileInputStream(fileName))){// readObject() 返回的是 Object 类型需要强转为 UserUserdeserializedUser(User)ois.readObject();System.out.println(反序列化成功: deserializedUser);}catch(IOException|ClassNotFoundExceptione){e.printStackTrace();}会报错com.example.demo.entity.User; local class incompatible: stream classdesc serialVersionUID 8589669512230966022, local class serialVersionUID 7295697305919654935某个字段不想序列化怎么办?用transient修饰即可。序列化有哪些要求?1、必须有无参构造器在反序列化时会new一个对象再实现反序列化如果没有无参构造器程序不知道传什么参数实现初始化2、字段必须有对应的getter()、setter()方法且访问权限要为public否则该字段访问不了。3、内部类必须是static的4、如果是二进制等原生序列化需要实现serializable接口并添加serialVersionUID。

相关新闻

Fillinger:Adobe Illustrator智能填充脚本的终极指南,告别手动排列的烦恼

Fillinger:Adobe Illustrator智能填充脚本的终极指南,告别手动排列的烦恼

Fillinger:Adobe Illustrator智能填充脚本的终极指南,告别手动排列的烦恼 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 还在为Adobe Illustrator中繁琐的元…

2026/8/9 2:53:43 阅读更多 →
Git简介及实操

Git简介及实操

1.GIT简介(1)GIT是一个开源的分布式版本控制系统。集中式vs分布式集中式:比如SVN,一个项目只有唯一的一个版本库,所有项目成员都需要网络提交到版本库。分布式:每台机器都有一个完整的库:所有文件、所有历史…

2026/8/9 2:53:44 阅读更多 →
51单片机超声波测距系统Proteus仿真全攻略:从原理到代码实现

51单片机超声波测距系统Proteus仿真全攻略:从原理到代码实现

1. 项目概述与核心价值最近在整理一些老项目的资料,翻到了当年做的一个基于51单片机的超声波测距系统仿真设计。这个项目可以说是很多电子、自动化专业学生课程设计或毕业设计的“老朋友”了。它麻雀虽小,五脏俱全,涵盖了单片机最小系统、传感…

2026/8/9 2:53:44 阅读更多 →

最新新闻

为什么我对照片的排序总是与Windows系统的不一样呢?

为什么我对照片的排序总是与Windows系统的不一样呢?

我们在文件夹中有一批图片,在进行查看的时候,当排序方式是 日期 的时候,到底是按照怎么样的顺序排列的呢?在 c# 里面,我们尝试把它认为是图片的 创建时间 (new FileInfo("F:\\1.png").CreationTime), 也尝试…

2026/8/9 3:15:11 阅读更多 →
TranslucentTB Hook注入失败?深入解析Windows任务栏美化工具的核心故障与修复方案

TranslucentTB Hook注入失败?深入解析Windows任务栏美化工具的核心故障与修复方案

TranslucentTB Hook注入失败?深入解析Windows任务栏美化工具的核心故障与修复方案 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB …

2026/8/9 3:15:11 阅读更多 →
超级取证大师 MCP 工具赋能电子数据取证

超级取证大师 MCP 工具赋能电子数据取证

超级取证大师 MCP 工具赋能电子数据取证 在实际的工作当中经常会碰到对手机或者计算机的数据进行分析,但手机和计算机的检材数据量大且需要做数据或者人物的关联分析,如果使用人工的方式会比较耗费时间,但如果这些动作能够交给 AI 分析&#…

2026/8/9 3:15:11 阅读更多 →
LangGraph实战:StateGraph与MessageGraph选型指南与AI Agent架构设计

LangGraph实战:StateGraph与MessageGraph选型指南与AI Agent架构设计

1. 项目概述:从“八股文”到实战选型最近在搞AI Agent项目,特别是涉及到多Agent协作和复杂流程编排时,StateGraph和MessageGraph这两个概念就绕不过去了。这俩词听起来挺唬人,感觉是某种高深的理论,但实际上&#xff0…

2026/8/9 3:15:11 阅读更多 →
如何在5分钟内创建专业EPUB电子书:EPubBuilder完全指南

如何在5分钟内创建专业EPUB电子书:EPubBuilder完全指南

如何在5分钟内创建专业EPUB电子书:EPubBuilder完全指南 【免费下载链接】EPubBuilder 一款在线的epub格式书籍编辑器 项目地址: https://gitcode.com/gh_mirrors/ep/EPubBuilder 想要制作专业级的EPUB电子书却担心技术门槛太高?EPubBuilder这款开…

2026/8/9 3:15:11 阅读更多 →
腾讯混元Hy3模型:在性能、成本与稳定性间寻找工程化平衡

腾讯混元Hy3模型:在性能、成本与稳定性间寻找工程化平衡

最近在折腾一些 AI 应用时,发现一个挺有意思的现象:很多开发者,包括我自己,都习惯性地把目光投向海外那几个“明星”模型。无论是做原型验证,还是考虑长期部署,第一反应往往是去查 OpenAI、Claude 或者 Dee…

2026/8/9 3:14:10 阅读更多 →

日新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/9 0:01:47 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/9 0:01:47 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/9 0:03:48 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/9 0:01:47 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/9 0:01:47 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/9 0:03:48 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/8 17:02:44 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/9 0:45:04 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/8 17:02:44 阅读更多 →