java 序列化实现深度克隆
来源:互联网 发布:数据图表制作软件 编辑:程序博客网 时间:2024/04/28 19:04
package com.test;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Serializable;import java.util.ArrayList;import java.util.List;public class StudentClone implements Cloneable,Serializable { static final long serialVersionUID = -8084210473720589252L; String name; int age; List<String> list = new ArrayList<String>(){{ add("A"); add("B"); add("C"); }}; StudentClone(String name,int age) { this.name=name; this.age=age; } public Object clone(){ try{ //save the object to a byte array ByteArrayOutputStream bout = new ByteArrayOutputStream(); ObjectOutputStream out = new ObjectOutputStream(bout); out.writeObject(this); out.close(); //read a clone of the object from byte array ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray()); ObjectInputStream in = new ObjectInputStream(bin); Object ret = in.readObject(); in.close(); return ret; }catch(Exception e){ return null; } } public static void main(String[] args) { StudentClone s1= new StudentClone("zhangsan",50); StudentClone s2=(StudentClone)s1.clone(); s2.list.add("D"); s2.name="lisi"; s2.age=20; System.out.println("name="+s1.name+","+"age="+s1.age);//修改学生2后,不影响学生1的值。 System.out.println("name="+s2.name+","+"age="+s2.age); System.out.println("name="+s1.name+","+"age="+s1.age); System.out.println(s1.list.size()+"hhhhhhh"); System.out.println(s2.list.size()+"uuuuuuu");} }
0 0
- java 序列化实现深度克隆
- 序列化实现深度克隆
- java序列化深度克隆
- 序列化存取实现java对象深度克隆
- 利用序列化实现深度克隆
- java序列化与深度克隆
- java使用序列化实现深克隆
- java (31) - 序列化实现深克隆
- Java 序列化方式实现深克隆
- Java序列化和克隆--对象深度拷贝
- JAVA对象克隆(浅度、深度、序列)
- Java 基础数据类型 和 深度克隆对象的2种方法(实现Cloneable接口或者实现对象序列化)
- java 序列化和反序列化实现克隆
- [JAVA] 深克隆 另外实现方法【序列化】
- Java序列化和克隆
- 使用对象输入输出流(ObjectOutputStream,ObjectInputStream)实现序列化对象的深度克隆
- Serializable(序列化) 实现java深度拷贝
- java 反序列化深度克隆Object
- maven入门的很好的例子
- YUV 转 RGB快速算法
- HDU 2296 Ring AC自动机上的DP
- V4L2视频采集操作流程和接口说明
- Linux安装MySQL-server-5.6.22日志
- java 序列化实现深度克隆
- 20150129 N2 成绩133 合格!
- Java解析Properties文件
- 分布式图鉴
- MFC 学习之 对话框添加菜单详细步骤
- FreeBSD 让普通用户使用su 获得root权限
- Exec vs ExecWait vs ExecShell vs nsExec::Exec vs nsExec::ExecToLog vs nsExec::ExecToStack vs ExecDos
- 600多个iOS开源项目分类及介绍
- 关于< meta http-equiv = "X-UA-Compatible" content = "IE=edge,chrome=1" />