• JAVA的深浅拷备


    package com.jd.ng.shiro.testFactory;

    import java.io.*;

    /**
    * @author wangzhilei
    * @Author: husToy.Wang
    * @Date: 2019/10/30 15:20
    * @Version 1.0
    * @date 2019-10-30 15:21
    */
    public class ProtoType implements Cloneable, Serializable {

    private static final long serialVersionUID = 1L;

    private String string;

    private SerializableObject obj;

    /*浅copy*/
    @Override
    protected Object clone() throws CloneNotSupportedException {
    return (ProtoType) super.clone();
    }

    /* 深复制 */
    public Object deepClone() throws IOException, ClassNotFoundException {

    /* 写入当前对象的二进制流 */
    ByteArrayOutputStream bos = new ByteArrayOutputStream(); // 缓冲区
    ObjectOutputStream oos = new ObjectOutputStream(bos);
    oos.writeObject(this);


    /* 读出二进制流产生的新对象 */
    ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
    ObjectInputStream ois = new ObjectInputStream(bis);
    return ois.readObject();

    }


    public static long getSerialVersionUID() {
    return serialVersionUID;
    }

    public String getString() {
    return string;
    }

    public SerializableObject getObj() {
    return obj;
    }
    }


    class SerializableObject implements Serializable {
    private static final long serialVersionUID = 1L;
    }
  • 相关阅读:
    单例模型
    数据库7 索引
    数据库6.高级
    数据库5 不想改
    绑定方法与非绑定方法 反射 内置方法
    组合 封装 多态
    面向对象之继承
    面向过程编程
    logging hashlib 模块
    pickle json xml shelve configparser模块
  • 原文地址:https://www.cnblogs.com/leigepython/p/11765888.html
Copyright © 2020-2023  润新知