java 序列化总结和分类
Java序列化是将对象状态转换为字节流的技术,用于数据持久化和网络传输,是分布式系统的基石。以下从工具、方法、实践、对比、场景到高阶应用,为你全面梳理。一、Java序列化工具全景图Java序列化工具按数据格式和应用场景可分为三大类:分类代表工具数据格式核心特点JDK原生Serializable / Externalizable二进制无需外部依赖,性能最差,不跨语言JSON文本型Jackson / Gson / Fastjson2JSON人类可读,生态丰富,调试方便高性能二进制型Kryo / FST / Protobuf / Thrift / Avro二进制体积小、速度快,适合高性能RPC二、序列化方法详解2.1 JDK原生序列化实现java.io.Serializable接口,借助ObjectOutputStream/ObjectInputStream完成:java// 序列化 public static byte[] serialize(Object obj) throws Exception { ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(baos); oos.writeObject(obj); oos.close(); return baos.toByteArray(); } // 反序列化 public static T T deserialize(byte[] bytes) throws Exception { ByteArrayInputStream bais = new ByteInputStream(bytes); ObjectInputStream ois = new ObjectInputStream(bais); T obj = (T) ois.readObject(); ois.close(); return obj; }Externalizable是Serializable的子接口,需要开发者实现writeExternal/readExternal方法,可精细控制序列化字段。2.2 Kryo — 高性能Java专用Kryo 通过显式注册类和字节码生成技术,实现高性能序列化:javaKryo kryo = new Kryo(); kryo.register(MyClass.class); // 显式注册,提升性能 // 序列化 Output output = new Output(new FileOutputStream("file.bin")); kryo.writeObject(output, object); output.close(); // 反序列化 Input input = new Input(new FileInputStream("file.bin")); MyClass obj = kryo.readObject(input, MyClass.class); input.close();⚠️注意:Kryo非线程安全,多线程环境下需每个线程独立实例或使用池化。2.3 FST — 兼容JDK的高性能替代FST完全兼容JDK序列化协议,可直接替换,速度可达JDK的10倍,体积仅为1/3:java// 快捷方式 FSTConfiguration conf = FSTConfiguration.createDefaultConfiguration(); byte[] bytes = conf.asByteArray(obj); Object obj2 = conf.asObject(bytes);在 Dubbo 中启用 FST 只需一行配置:xmldubbo:protocol serialization="fst"/2.4 Protobuf — 跨语言标准需要先定义.proto文件,编译生成 Java 代码:protobufsyntax = "proto3"; message Person { string name = 1; int32 age = 2; }java// 序列化 Person person = Person.newBuilder().setName("John").setAge(30).build(); byte[] bytes = person.toByteArray(); // 直接序列化为字节数组 // 反序列化 Person person2 = Person.parseFrom(bytes);[reference:13]2.5 Jackson — JSON序列化事实标准Spring Boot 默认集成,通过注解驱动:

相关新闻

终极NVIDIA显卡优化指南:免费开源工具解锁隐藏性能

终极NVIDIA显卡优化指南:免费开源工具解锁隐藏性能

终极NVIDIA显卡优化指南:免费开源工具解锁隐藏性能 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 还在为游戏卡顿、画面撕裂而烦恼吗?想要让显卡发挥最大潜力却不知从何下手&am…

2026/8/9 2:31:50 阅读更多 →
公平抽签算法实现与随机性验证

公平抽签算法实现与随机性验证

1. 项目概述:公平抽签问题解析公平抽签是一个经典的算法问题,核心在于如何设计一个完全随机且可验证的抽签机制。这个问题看似简单,但在实际应用中需要考虑诸多因素,比如随机性保证、结果可验证性、参与者信任度等。我在处理类似需…

2026/8/9 2:31:50 阅读更多 →
RedPanda-CPP项目模板:打造高效C/C++开发工作流

RedPanda-CPP项目模板:打造高效C/C++开发工作流

1. 项目概述:为什么我们需要一个专业的C/C工程模板?如果你是从Visual Studio或者Code::Blocks这类“全家桶”式IDE转过来的C/C开发者,第一次打开RedPanda-CPP时可能会有点懵。它界面简洁,启动飞快,但新建一个项目后&am…

2026/8/9 2:31:50 阅读更多 →

最新新闻

Nacos 1.x注册中心核心原理:从数据模型到健康检查全解析

Nacos 1.x注册中心核心原理:从数据模型到健康检查全解析

1. 先搞清楚Nacos 1.x作为注册中心到底解决了什么问题如果你正在准备Java后端面试,尤其是微服务架构相关的岗位,那么“Nacos 1.x作为注册中心的原理”几乎是必考题。这个问题考察的不是你是否会用Nacos,而是你是否理解一个服务注册中心最核心…

2026/8/9 7:23:23 阅读更多 →
企业级大模型开发实战:从CodeX原理到AutoDL云端部署全流程

企业级大模型开发实战:从CodeX原理到AutoDL云端部署全流程

这次我们来看一个企业级 CodeX 与 ChatGPT 的开发实战项目。这个项目的核心不是单纯调用 API,而是从模型预训练的原理讲起,一直到在 AutoDL 云服务器上完成实战环境的搭建与部署,旨在为开发者提供一条从理论到实践的完整路径。对于希望深入理…

2026/8/9 7:23:23 阅读更多 →
百度网盘解析工具完整指南:如何免费实现高速下载

百度网盘解析工具完整指南:如何免费实现高速下载

百度网盘解析工具完整指南:如何免费实现高速下载 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 还在为百度网盘蜗牛般的下载速度而烦恼吗?百度网盘解析…

2026/8/9 7:23:23 阅读更多 →
C++ List容器原理、优化与实践指南

C++ List容器原理、优化与实践指南

1. List容器在C中的地位与应用场景作为C标准模板库(STL)中最基础的序列式容器之一,list以其独特的双向链表结构在特定场景下展现出不可替代的优势。与vector的连续内存布局不同,list采用非连续的节点存储方式,这使得它在中间位置插入删除操作…

2026/8/9 7:23:23 阅读更多 →
Unreal Engine坐标系转换原理与实践指南

Unreal Engine坐标系转换原理与实践指南

1. 坐标系基础概念解析 在三维图形和游戏开发领域,坐标系系统是构建虚拟世界的数学基础。Unreal Engine作为主流游戏引擎,其坐标系处理方式直接影响着场景构建、物体定位和动画表现。理解左手系与右手系的本质差异,是掌握UE世界坐标系转换的关…

2026/8/9 7:23:23 阅读更多 →
Linux-基础开发工具1

Linux-基础开发工具1

目录 1.1什么是软件包 1.2Linux软件的生态问题 1.3apt具体操作 1.3.1查看软件包 1.3.2安装软件 1.3.3卸载软件 1.4安装源 2.编辑器vim 2.1Linux编辑器-vim的使用 2.2vim的基本概念 2.3vim的基本操作 2.3.1在命令行对vim进行操作 2.3.2命令模式下对vim进行操作 2.…

2026/8/9 7:22:23 阅读更多 →

日新闻

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 阅读更多 →