首页 > 编程语言 >Java 运用字节流实现的针对对象的深拷贝

Java 运用字节流实现的针对对象的深拷贝

时间:2024-09-02 15:14:20浏览次数:12  
标签:SelfCloneSample Java 字节 another byteArrayOutputStream new 拷贝 序列化

对象序列化为字节流,再从字节流反序列化为新的对象。

class SelfCloneSample implements Serializable {
    public SelfCloneSample deepClone() {
        // 万物归于字节流,对对象序列化后再反序列化,即可实现深拷贝
        SelfCloneSample another = null;
        try {
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
            ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
            objectOutputStream.writeObject(this);

            byte[] bytes = byteArrayOutputStream.toByteArray();
            ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
            ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream);

            another = (SelfCloneSample) objectInputStream.readObject();
        } catch (Exception e) {
            System.out.println(e);
        }
        return another;
    }
}

标签:SelfCloneSample,Java,字节,another,byteArrayOutputStream,new,拷贝,序列化
From: https://www.cnblogs.com/cyansill/p/18392766

相关文章

  • Java基于小程序公考学习平台的设计与实现
    博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w+、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌......
  • 基于Java中的SSM框架实现私人书店管理系统项目【项目源码+论文说明】计算机毕业设计
    基于java中的SSM框架实现私人书店管理系统平台演示【内附项目源码+LW说明】摘要电子商务在近些年来已经成为了我国重要的第三产业之一,电子商务成为了我国经济增速中一个不可缺少的组成部分,而随着互联网技术的不断发展,现在的电子商务也已经日趋成熟,不仅仅是在技术层面实现......
  • java-swing贪吃蛇游戏
    MyRect.javapackageMain;publicclassMyRect{ publicintx=0; publicinty=0; publicMyRgbrgb=newMyRgb(); longcreatetime=0; publicMyRect(){ } publicMyRect(intmx,intmy,MyRgbmyrgb,longtime){ x=mx; y=my; rgb=......
  • java~重写hashcode和equals
    单字段和多字段重写hashcode在Java中,重写hashCode方法的场景通常与对象的哈希值计算有关,特别是在使用哈希表(如HashMap,HashSet等)时。下面是你提供的两种hashCode实现的具体使用场景分析:1.第一种实现@Overridepublicbooleanequals(Objecto){if(this==o)......
  • java-swing画图
    MyRect.javapackageMain;publicclassMyRect{ publicintx=0; publicinty=0; publicMyRgbrgb=newMyRgb(); longcreatetime=0; publicMyRect(){ } publicMyRect(intmx,intmy,MyRgbmyrgb,longtime){ x=mx; y=my; rgb=......
  • 零拷贝IO
    以下内容参考和转载自:小林coding,原来8张图,就可以搞懂「零拷贝」了。1、DMA  在没有DMA(直接内存访问)技术之前,调用read()读取磁盘文件的话,会有5个步骤:CPU向磁盘发起IO请求—>磁盘控制器将数据放到磁盘缓冲区中后产生一个IO中断—>CPU收到IO中断信号后将磁盘缓冲区数据拷贝到内......
  • Java中的堆
    Java中的堆一、引言在Java中,堆是一种重要的数据结构,它通常表现为一个完全二叉树,具有一些特定的性质。堆可以是最大堆或最小堆,其中最大堆的每个节点的值都不小于其子节点,而最小堆的每个节点的值都不大于其子节点。堆在很多算法中都有应用,比如堆排序、优先队列等。本文将详......
  • Java中BigInteger类的使用
    Java中BigInteger类的使用一、引言在Java编程语言中,处理大整数是一个常见的需求,尤其是在加密、科学计算和金融领域。Java提供了BigInteger类来处理任意精度的整数运算,这使得程序员可以轻松地处理超出基本数据类型范围的数值。本文将详细介绍BigInteger类的使用,包括其构造......
  • java计算机毕业设计家具销售电商平台(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景:随着互联网技术的飞速发展,电子商务已成为现代商业活动不可或缺的一部分,深刻改变了人们的消费习惯。在家具市场,传统销售模式受限于地域、时间等因素,难......
  • java计算机毕业设计家庭装修套餐消费管理(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着人们生活水平的提高和居住需求的多样化,家庭装修已成为现代家庭不可或缺的重要环节。然而,传统家庭装修过程中存在信息不对称、流程繁琐、管理效率......