Java-实例-序列化与反序列化(Serializable)
理解Serializable序列化---将对象状态转换为字节流以便存储或传输。序列化是冻结对象反序列化是解冻对象想让一个对象可序列化其类必须实现java.io.Serializable接口。这个接口没有任何方法只起标记作用告诉JVM这个类的对象允许被序列化。在Android中进行序列化主要有两种选择Java原生的Serializable和Android专属的Parcelable。它们最核心的区别在于设计初衷和应用场景Serializable是Java的标准接口使用简单但效率较低适合持久化存储存文件或网络传输-2-8-11。Parcelable是Android特有的接口实现稍复杂但性能极高专为内存间的高效数据传输而设计是Android组件间通信如Intent、Binder跨进程通信的首选实例将对象person转换为字节流存储在工程target文件夹中。调用Person person new Person(九股烟, 20); byte[] bytes0 serialize(person); // 序列化将对象保存到文件 save(bytes0); //保存 byte[] bytes1 read(); //读出 Person p deserialize(bytes1); // 反序列化从文件恢复对象 System.out.println(反序列化对象 p.toString());功能函数// // 1. 序列化对象 → 字节数组 // public static byte[] serialize(Person person) { try ( ByteArrayOutputStream baos new ByteArrayOutputStream(); ObjectOutputStream oos new ObjectOutputStream(baos)) { oos.writeObject(person); oos.flush(); return baos.toByteArray(); } catch (IOException e) { e.printStackTrace(); return null; } } // // 2. 反序列化字节数组 → 对象 // public static Person deserialize(byte[] bytes) { if (bytes null || bytes.length 0) {return null;} try (ByteArrayInputStream bais new ByteArrayInputStream(bytes); ObjectInputStream ois new ObjectInputStream(bais)) { return (Person) ois.readObject(); } catch (IOException | ClassNotFoundException e) { e.printStackTrace(); return null; } } String targetDir target/; String fileName path_bytes.km; // // 3. 保存字节数组 → 文件 // public void save(byte[] data) { try { // 确保target目录存在 File file new File(targetDir, fileName); file.getParentFile().mkdirs();// 确保target目录存在 try (FileOutputStream fos new FileOutputStream(file)) { fos.write(data); System.out.println(保存成功: file.getAbsolutePath()); System.out.println(数据大小: data.length 字节); } } catch (IOException e) { e.printStackTrace(); } } // // 4. 读取文件 → 字节数组 // public byte[] read() { File file new File(targetDir, fileName); file.getParentFile().mkdirs();// 确保target目录存在 if (!file.exists()) {return null;} try (FileInputStream fis new FileInputStream(file)) { byte[] data new byte[(int) file.length()]; fis.read(data); System.out.println(读取成功: file.getAbsolutePath()); System.out.println(数据大小: data.length 字节); return data; } catch (IOException e) { e.printStackTrace(); return null; } }Person.java 接口Serializableimport java.io.Serializable; public class Person implements Serializable{ private String name; private int age; public Person(String name, int age) { this.name name; this.age age; } public String getName() { return name; } public void setName(String name) { this.name name; } public int getAge() { return age; } public void setAge(int age) { this.age age; } Override public String toString() { return Person{ name name \ , age age }; } }

相关新闻

知网AIGC检测率偏高?5款去AI工具让论文表达更自然!

知网AIGC检测率偏高?5款去AI工具让论文表达更自然!

用DeepSeek或者ChatGPT帮忙写完论文,交稿前突然想起来:学校要查AIGC检测。赶紧找了个检测工具一测——AI率72%。怎么把论文里的AI痕迹去掉?有没有什么去AI痕迹工具能一次搞定? 这篇文章帮你整理了2026年3月实测过的5款消除AI痕迹软…

2026/10/9 13:32:55 阅读更多 →
海康威视监控系统实战:有线无线方案选型、安装调试与远程访问全攻略

海康威视监控系统实战:有线无线方案选型、安装调试与远程访问全攻略

1. 项目概述:从零到一,搞定海康威视监控系统 最近帮朋友的公司折腾了一套海康威视的监控系统,从有线到无线,从摄像头安装到录像机调试,算是把整个流程又完整地走了一遍。这活儿看着简单,不就是装几个摄像头…

2026/10/6 19:17:57 阅读更多 →
从战略洞察到一线执行:一把手如何用一张驾驶舱驱动全员协同

从战略洞察到一线执行:一把手如何用一张驾驶舱驱动全员协同

导语 很多企业的一把手都遇到过同一个尴尬:财务、销售、运营各做一张月度报表,标题差不多,数字却对不上。一场跨部门复盘会的前二十分钟,往往不是讨论业务,而是花在"你那个口径和我那个口径到底哪个对"上。这…

2026/10/13 9:12:49 阅读更多 →

最新新闻

从模型轻量化到TFLite部署:边缘设备上的TensorFlow完整实践指南

从模型轻量化到TFLite部署:边缘设备上的TensorFlow完整实践指南

1. 边缘计算的落地困境与TensorFlow的角色先聊点实际的。这两年“边缘计算”四个字被各家厂商反复重提,趋势确实在那,但真正动手做过的人应该都有体会:把模型跑在云端和跑在边缘设备上,完完全全是两种工作量级。云端GPU随手就能跑…

2026/10/15 5:23:10 阅读更多 →
DeepGEMM开源:矩阵乘法与低精度融合如何化解算力焦虑

DeepGEMM开源:矩阵乘法与低精度融合如何化解算力焦虑

只要你碰过深度学习训练或者高频推理任务,应该早就对“算力焦虑”这五个字有体感了。每次跑大模型或者在数据集上反复调参,GPU风扇狂转的时候,弹出来的账单和排队时间都在提醒你:算力这东西,真的是又贵又不够用。而深度…

2026/10/15 5:23:10 阅读更多 →
实时感知如何推动自动驾驶地图弱化

实时感知如何推动自动驾驶地图弱化

1. 项目概述:一场被低估的感知范式迁移“从提前知道到实时感知,自动驾驶为什么越来越不依赖地图?”——这句话不是技术营销话术,而是过去三年我跟踪二十多个量产车型、参与三轮城市NOA实测后,反复验证出的真实演进路径…

2026/10/15 5:23:10 阅读更多 →
ReCal:把模型剪枝后的恢复准备前置到剪枝前

ReCal:把模型剪枝后的恢复准备前置到剪枝前

剪完再靠 OPD 补救?ReCal 把恢复准备提前到剪枝前模型剪枝这件事,圈子里一直有个心照不宣的默契:剪完再说。权重衰减多少、精度掉几个点、哪些层被剪废了,全是剪完以后用验证集测一轮才知道。如果效果崩了,就赶紧上 OP…

2026/10/15 5:23:10 阅读更多 →
员工删除聊天记录公司能查到吗?

员工删除聊天记录公司能查到吗?

先说答案:看你有没有开会话存档。 没开会话存档 删了就是删了 公司看不到 客户聊了什么全凭员工说 离职带走客户都不知道 开了会话存档 删不删都没用 聊天记录实时同步后台 本地删了服务器还有 公司随时能查 能看到什么 所有聊天记录,文字图片文件…

2026/10/15 5:23:10 阅读更多 →
Elasticsearch集群运维:索引模板与ILM生命周期策略实战

Elasticsearch集群运维:索引模板与ILM生命周期策略实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 5:22:10 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →