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

hadoop中的序列化和反序列化(3)

3. Java的序列化

Java提供了内置的序列化机制,通过java.io.Serializable接口实现。

3.1 如何实现Java序列化
  • 让类实现Serializable接口。

  • 使用ObjectOutputStream进行序列化。

  • 使用ObjectInputStream进行反序列化。

示例代码
序列化

java

复制

import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;class Person implements Serializable {private static final long serialVersionUID = 1L; // 版本号private String name;private int age;public Person(String name, int age) {this.name = name;this.age = age;}@Overridepublic String toString() {return "Person{name='" + name + "', age=" + age + "}";}
}public class SerializationExample {public static void main(String[] args) {Person person = new Person("John", 30);try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("person.ser"))) {oos.writeObject(person);System.out.println("Object serialized successfully.");} catch (Exception e) {e.printStackTrace();}}
}
反序列化

java

复制

import java.io.FileInputStream;
import java.io.ObjectInputStream;public class DeserializationExample {public static void main(String[] args) {try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("person.ser"))) {Person person = (Person) ois.readObject();System.out.println("Object deserialized: " + person);} catch (Exception e) {e.printStackTrace();}}
}
3.2 注意事项
  • Serializable接口是一个标记接口,没有方法。

  • 序列化时会保存对象的字段值,但不会保存方法。

  • 如果类中包含非序列化字段,可以使用transient关键字标记。

  • 序列化版本号serialVersionUID:用于版本控制,如果类结构发生变化,需要更新版本号。

http://www.dtcms.com/a/177539.html

相关文章:

  • C# WPF 颜色拾取器
  • AI与情感计算:如何让机器更好地理解人类情感与情绪?
  • CATIA高效工作指南——零件建模篇(二)
  • docker host模式问题
  • 二叉树与优先级队列
  • android中背压问题面试题及高质量回答范例
  • 怎么有效管理项目路径(避免使用绝对路径)
  • AI应用开发实战分享
  • 掌握Multi-Agent实践(一):使用AgentScope实践入门和Workstation上手指南
  • QT6 源(84):阅读与注释时间类型 QTime,源代码以及属性测试
  • 5.7线性动态规划1
  • Ubuntu 安装 Keepalived、LVS
  • ROS1和ROS2使用桥接工具通信
  • leeCode算法之独一无二出现次数
  • 自由浮动时间和总浮动时间对比
  • 贷中业务提额、降额策略
  • (eNSP)策略路由实验配置
  • Java中有哪些锁?
  • OpenShift AI - 模型注册管理
  • 绕线机的制作与研究
  • ‌人工智能在农作物病虫害识别中的应用前景分析
  • 【LUT技术专题】基于扩展卷积的极快速LUT算法
  • 如何快速获取旺店通奇门原始数据至本地
  • 嵌入式软件学习指南:从入门到进阶
  • STM32基础教程——软件SPI
  • Cadence 高速系统设计流程及工具使用二
  • 前端面经-VUE3篇(四)--pinia篇-基本使用、store、state、getter、action、插件
  • MDP相关内容
  • 贵州省棒球运动发展中长期规划(2024-2035)·棒球1号位
  • 第二天 网络与通信协议