java对象拷贝

简介: java对象拷贝

对象拷贝

作用:

  •    提升对象创建的效率。

分类:

  •   浅拷贝:拷贝对象时,String、基本类信息变量属性复制,引用对象不复制。
  •   深拷贝:拷贝对象时,所偶有属性都赋值一份。

实现方式:

  •   通过clone方法实现。浅拷贝只要拷贝对象实现Cloneable接口并重写clone方法即可;深拷贝需要所有属性对象都实现Cloneable接口并重写clone方法,同时拷贝对象在重写clone方法时要通过拷贝的方式对引用属性赋值。
// 所有属性对象均要实现clone接口,并重写clone方法
public Object clone() throws CloneNotSupportedException { 
 Study s = (Study) super.clone(); 
 s.setScore(this.score.clone()); //  引用对象需要用克隆的方式赋值
 return s; 
}
  •  序列化克隆,属于深拷贝。
Student stu1 = new Student("宁采臣",a,174);
//通过序列化方法实现深拷贝
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(stu1);
oos.flush();
ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(bos.toByteArray()));
Student stu2 = (Student)ois.readObject();

BeanUtils.copyProperties(a,c);这是采用反射实现的,属于浅拷贝。

 

相关文章
C4.
|
1月前
|
缓存 Java
Java的Integer对象
Java的Integer对象
C4.
10 0
|
1月前
|
Java
【Java每日一题】— —第二十三题:匿名对象及其使用问题
【Java每日一题】— —第二十三题:匿名对象及其使用问题
14 0
|
14天前
|
Java
java8中List对象转另一个List对象
java8中List对象转另一个List对象
31 0
|
1月前
|
Java
【Java】— —实现人物对象的增、删、改、查(注:对象的删除以逻辑删除为主,在person类中设置“删除状态字段”,字删除该字段时,将状态改为有效。)
【Java】— —实现人物对象的增、删、改、查(注:对象的删除以逻辑删除为主,在person类中设置“删除状态字段”,字删除该字段时,将状态改为有效。)
33 0
|
5天前
|
Java
在Java中,多态性允许不同类的对象对同一消息做出响应
【4月更文挑战第7天】在Java中,多态性允许不同类的对象对同一消息做出响应
11 2
|
14天前
|
Java
Java常用封装Base对象
Java常用封装Base对象
7 0
|
21天前
|
Java
【Java】通过Comparator比较器的方式给对象数组排序
【Java】通过Comparator比较器的方式给对象数组排序
7 0
|
21天前
|
Java
【Java】重写compareTo()方法给对象数组排序
【Java】重写compareTo()方法给对象数组排序
9 0
|
21天前
|
Java
【Java】数组中的拷贝方法与初步理解深浅拷贝
【Java】数组中的拷贝方法与初步理解深浅拷贝
12 0
|
26天前
|
Java 数据安全/隐私保护
JAVA对象
JAVA对象
10 0