当前位置: 首页 > news >正文

【Java 序列化 (Serialization)】

Java 序列化 Serialization


序列化是将 Java 对象转换为字节流的过程,以便可以将其保存到文件中、通过网络传输或在内存中缓存。反序列化则是将字节流转换回 Java 对象的过程。

  • serialVersionUID是一个用于验证序列化和反序列化过程中类的版本是否一致的标识符。
  • Java 的序列化机制允许不显式声明 serialVersionUID。
  • 如果没有显式定义,​​JVM 会根据类的结构自动计算一个 serialVersionUID​​(基于类名、字段、方法等)。
  • 如果类的结构发生变化(如新增/删除字段),JVM 计算的 serialVersionUID也会变化,可能导致反序列化失败(InvalidClassException)。
  • ​​不同 JVM 实现可能计算不同的 serialVersionUID,影响跨环境兼容性。
  • 为了避免潜在的问题,​​建议始终显式声明 serialVersionUID​​
@Data
@AllArgsConstructor
// 可序列化的User类
public class User implements Serializable {private static final long serialVersionUID = 1L; // 序列化版本号private String name;private int age;
}
public class Main {public static void main(String[] args) {// 1. 先序列化一个User对象到文件(写入)serializeUser("C:\\Users\\admin\\Downloads\\user.dat");// 2. 从文件反序列化User对象(读取)deserializeUser("C:\\Users\\admin\\Downloads\\user.dat");}// 序列化User对象到文件private static void serializeUser(String filePath) {User user = new User("Alice");try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(filePath))) {out.writeObject(user);System.out.println("序列化成功: " + user);} catch (IOException e) {e.printStackTrace();}}// 从文件反序列化User对象private static void deserializeUser(String filePath) {try (ObjectInputStream in = new ObjectInputStream(new FileInputStream(filePath))) {User user = (User) in.readObject(); // 强制类型转换System.out.println("反序列化成功: " + user);} catch (IOException | ClassNotFoundException e) {e.printStackTrace();}}
}
http://www.dtcms.com/a/529305.html

相关文章:

  • STM32H743-ARM例程30-Modbus
  • ps网站导航怎么做wordpress 主题详解
  • 网站建设全网推广小程序网站制作app排行榜前十名
  • 正规网站建设多少费用深圳品牌设计公司哪家好
  • Product Hunt 每日热榜 | 2025-10-25
  • Java实用工具库深度解析:从生产力到艺术性
  • 全网营销网站建设特点南山出名的互联网公司
  • 计算机组成原理C,存储器容量计算地址线和数据线
  • 连云港建设局官方网站模板大全免费
  • 建设项目经济评价网站青岛公司网站建设价格
  • 重庆网站seo营销模板做网站怎么挣钱
  • 软件设计师知识点总结:软件工程
  • 智慧校园建设方案-3PPT(44页)
  • Neovim下载安装图解(附安装包,适合新手)
  • 做网站卖房写标题百度推广 网站备案
  • Grok、Claude、ChatGPT、Gemini模型适用场景比较
  • PHP网站开发涉及的工具有哪些中国建设集团门户网站
  • 网站开发 合同范本竞价托管
  • tkinter中各组件的属性设置及应用举例
  • 如何做游戏试玩网站福田网站建设运营费用
  • 网站设计开发的销售主要工作石家庄品牌设计公司
  • 代码随想录 700.二叉搜索树中的搜索
  • Vue3的自定义Hooks
  • Java的方法引用
  • 一个AVX的快速求向量余弦函数
  • 合肥优化网站哪家公司好网页打不开是什么问题
  • 去国外网站开发客户中的contact us 没有邮箱爱南宁app下载
  • MySQL 的各种关联查询(JOIN)
  • h5游戏免费下载:水果忍者
  • 有什么网站可以做微信支付宝支付宝视频模板免费制作