Java 序列化和反序列化实例详解

发布时间 - 2026-01-11 00:22:11    点击率:

Java 序列化和反序列化实例详解

在分布式应用中,对象只有经过序列化才能在各个分布式组件之间传输,这就涉及到两个方面的技术-发送者将对象序列化,接受者将对象反序列化,下面就是一个很好的例子!

1.实体-Employee

import java.io.Serializable; 
 
public class Employee implements Serializable{ 
  /** 
   * 
   */ 
  private static final long serialVersionUID = 1L; 
  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; 
  } 
  private String name; 
  private int age; 
} 

2.SerializeHelper

import java.io.ByteArrayInputStream; 
import java.io.ByteArrayOutputStream; 
import java.io.IOException; 
import java.io.ObjectInputStream; 
import java.io.ObjectOutputStream; 
 
public class SerializeHelper { 
  public byte[] Serialize(Object object) { 
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); 
    try { 
      ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream); 
      //将对象写入到字节数组中进行序列化 
      objectOutputStream.writeObject(object); 
      return byteArrayOutputStream.toByteArray(); 
    } catch (IOException e) { 
      e.printStackTrace(); 
    } 
    return null; 
  } 
   
  public Object deSerialize(byte[] bytes) { 
    //将二进制数组导入字节数据流中 
    ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes); 
    try { 
      //将字节数组流转化为对象 
      ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream); 
      return objectInputStream.readObject(); 
    } catch (IOException e) { 
      e.printStackTrace(); 
    } catch (ClassNotFoundException e) { 
      e.printStackTrace(); 
    } 
    return null; 
  } 
} 

3.测试类

public class Hello { 
 
  /** 
   * @param args 
   */ 
  public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    SerializeHelper serializeHelper = new SerializeHelper(); 
    Employee employee = new Employee(); 
    employee.setName("admin"); 
    employee.setAge(20); 
    byte[] serializObject = serializeHelper.Serialize(employee); 
    System.out.println(serializObject); 
     
    Employee e = (Employee)serializeHelper.deSerialize(serializObject); 
    System.out.println("Name: " + e.getName()+",Age: " + e.getAge()); 
  } 
} 

4.输出

[B@e05d173 
Name: admin,Age: 20 

5.总结

序列化和反序列化还有其他的框架可以完成,比如Hession,有机会再研究!

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Java  # 序列化和反序列化  # 序列化和反序列化详解  # 序列化和反序列化实例  # Java实现序列化与反序列化的简单示例  # Java中对象序列化与反序列化详解  # java序列化和java反序列化示例  # 理解Java的序列化与反序列化  # JAVA序列化和反序列化的底层实现原理解析  # java 序列化与反序列化的实例详解  # Java中序列化与反序列化的定义及代码示例  # 序列化  # 很好  # 其他的  # 这就  # 希望能  # 涉及到  # 谢谢大家  # 会再  # 两个方面  # 组中  # 二进制数  # 在各个  # setName  # int  # getAge  # getName  # String  # void  # return  # ByteArrayInputStream 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: iOS发送验证码倒计时应用  如何在IIS7上新建站点并设置安全权限?  米侠浏览器网页背景异常怎么办 米侠显示修复  Windows Hello人脸识别突然无法使用  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  如何快速生成橙子建站落地页链接?  javascript日期怎么处理_如何格式化输出  悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  Laravel如何实现多对多模型关联?(Eloquent教程)  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  高防服务器:AI智能防御DDoS攻击与数据安全保障  php485函数参数是什么意思_php485各参数详细说明【介绍】  高端企业智能建站程序:SEO优化与响应式模板定制开发  如何快速重置建站主机并恢复默认配置?  javascript读取文本节点方法小结  如何批量查询域名的建站时间记录?  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  iOS UIView常见属性方法小结  如何在云主机快速搭建网站站点?  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  青岛网站建设如何选择本地服务器?  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  Internet Explorer官网直接进入 IE浏览器在线体验版网址  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  如何解决hover在ie6中的兼容性问题  如何选择可靠的免备案建站服务器?  Laravel如何实现数据库事务?(DB Facade示例)  Android okhttputils现在进度显示实例代码  如何实现建站之星域名转发设置?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  音乐网站服务器如何优化API响应速度?  如何快速生成凡客建站的专业级图册?  Laravel如何使用Sanctum进行API认证?(SPA实战)  Laravel storage目录权限问题_Laravel文件写入权限设置  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  手机软键盘弹出时影响布局的解决方法  浅谈redis在项目中的应用  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  如何在IIS7中新建站点?详细步骤解析  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  Python3.6正式版新特性预览  微信小程序 require机制详解及实例代码  微信小程序 闭包写法详细介绍