全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java中对象的序列化方式克隆详解

Java 序列化技术可以使你将一个对象的状态写入一个Byte 流里,并且可以从其它地方把该Byte 流里的数据读出来,重新构造一个相同的对象。

简述:

用字节流的方式,复制Java对象

代码:

流克隆复制函数

public static Object deepClone(Object obj){ 
 if(obj == null){ 
  return null; 
 } 
 try { 
  ByteArrayOutputStream byteOut = new ByteArrayOutputStream(); 
  Object cloneObj = null; 
  ObjectOutputStream out = new ObjectOutputStream(byteOut); 
  out.writeObject(obj); 
  ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray()); 
  ObjectInputStream in = new ObjectInputStream(byteIn); 
  cloneObj = in.readObject(); 
  return cloneObj; 
 } catch (Exception e) { 
  throw new RuntimeException(e); 
 } 
} 

ObjectClone.java

package test; 
 
import java.io.ByteArrayInputStream; 
import java.io.ByteArrayOutputStream; 
import java.io.ObjectInputStream; 
import java.io.ObjectOutputStream; 
import java.io.Serializable; 
 
public class ObjectClone { 
 /** 
  * 测试对象 
  */ 
 private static class Person implements Serializable { 
  private String name; 
  private int age; 
  Person(String name, int age){ 
   this.name = name; 
   this.age = age; 
  } 
  @Override 
  public String toString() { 
   return String.format("name: %s\nage: %s", name, age); 
  } 
 } 
  
 /** 
  * 测试函数 
  */ 
 public static void main(String[] args) { 
  Person person = new Person("Henry", 22); 
  Person newPerson = (Person)ObjectClone.deepClone(person); 
  System.out.println(newPerson); 
 } 
  
 /** 
  * 工具类 
  * 
  * @param obj 
  * @return 
  */ 
 public static Object deepClone(Object obj){ 
  if(obj == null){ 
   return null; 
  } 
  try { 
   ByteArrayOutputStream byteOut = new ByteArrayOutputStream(); 
   Object cloneObj = null; 
   ObjectOutputStream out = new ObjectOutputStream(byteOut); 
   out.writeObject(obj); 
   ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray()); 
   ObjectInputStream in = new ObjectInputStream(byteIn); 
   cloneObj = in.readObject(); 
   return cloneObj; 
  } catch (Exception e) { 
   throw new RuntimeException(e); 
  } 
 } 
} 

测试结果:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。


# java  # 克隆  # 序列化  # 对象序列化  # java深度克隆  # Java中对象的深复制(深克隆)和浅复制(浅克隆)介绍  # 基于序列化存取实现java对象深度克隆的方法详解  # 深入JAVA对象深度克隆的详解  # Java编程实现对象克隆(复制)代码详解  # java 对象的克隆(浅克隆和深克隆)  # JAVA 对象创建与对象克隆  # 实例分析java对象中浅克隆和深克隆  # 深入了解Java对象的克隆  # java对象克隆实现方法详解  # 使你  # 这篇文章  # 把该  # 有疑问  # ObjectOutputStream  # ByteArrayInputStream  # writeObject  # ByteArrayOutputStream  # byteOut  # cloneObj  # byteIn  # catch  # Exception  # throw  # toByteArray  # ObjectInputStream  # readObject  # return  # pre 


相关文章: 临沂网站制作企业,临沂第三中学官方网站?  制作企业网站建设方案,怎样建设一个公司网站?  网站制作模板下载什么软件,ppt模板免费下载网站?  家具网站制作软件,家具厂怎么跑业务?  实惠建站价格推荐:2025年高性价比自助建站套餐解析  C#怎么创建控制台应用 C# Console App项目创建方法  如何快速打造个性化非模板自助建站?  c# Task.ConfigureAwait(true) 在什么场景下是必须的  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  如何在IIS7上新建站点并设置安全权限?  香港网站服务器数量如何影响SEO优化效果?  建站主机选哪种环境更利于SEO优化?  网站制作壁纸教程视频,电脑壁纸网站?  Android滚轮选择时间控件使用详解  如何通过商城免费建站系统源码自定义网站主题?  网站设计制作企业有哪些,抖音官网主页怎么设置?  网站设计制作公司地址,网站建设比较好的公司都有哪些?  广东企业建站网站优化与SEO营销核心策略指南  如何用AWS免费套餐快速搭建高效网站?  如何在万网开始建站?分步指南解析  如何选择服务器才能高效搭建专属网站?  购物网站制作公司有哪些,哪个购物网站比较好?  网站制作的方法有哪些,如何将自己制作的网站发布到网上?  枣阳网站制作,阳新火车站打的到仙岛湖多少钱?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  如何构建满足综合性能需求的优质建站方案?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  济南企业网站制作公司,济南社保单位网上缴费步骤?  如何在宝塔面板中创建新站点?  建站VPS选购需注意哪些关键参数?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  如何选择美橙互联多站合一建站方案?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  建站主机如何选?性能与价格怎样平衡?  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  制作网站的软件免费下载,免费制作app哪个平台好?  如何通过WDCP绑定主域名及创建子域名站点?  公司网站设计制作厂家,怎么创建自己的一个网站?  如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?  网站制作公司,橙子建站是合法的吗?  建站之星2.7模板快速切换与批量管理功能操作指南  广州建站公司哪家好?十大优质服务商推荐  php json中文编码为null的解决办法  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  历史网站制作软件,华为如何找回被删除的网站?  如何在阿里云虚拟主机上快速搭建个人网站?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。