美文网首页
理解Java中的深拷贝和浅拷贝

理解Java中的深拷贝和浅拷贝

作者: maxwellyue | 来源:发表于2017-12-11 10:29 被阅读70次

下面列表是Java中深拷贝和浅拷贝的区别

Shallow Copy Deep Copy
Cloned Object and original object are not 100% disjoint. Cloned Object and original object are 100% disjoint.
Any changes made to cloned object will be reflected in original object or vice versa. Any changes made to cloned object will not be reflected in original object or vice versa.
Default version of clone method creates the shallow copy of an object. To create the deep copy of an object, you have to override clone method.
Shallow copy is preferred if an object has only primitive fields. Deep copy is preferred if an object has references to other objects as fields.
Shallow copy is fast and also less expensive. Deep copy is slow and very expensive.

表格来源Difference Between Shallow Copy Vs Deep Copy In Java

浅拷贝 深拷贝
原对象和克隆对象并不是100%无关联 原对象和克隆对象100%无关联
对克隆对象的任何改变都会反映在原对象中,反之亦然 克隆对象的改变不会反映在原对象中,反之亦然
默认的clone()方法创建的是浅拷贝 要实现深拷贝,必须重写clone()方法
如果一个对象中字段只有基本类型,推荐浅拷贝 如果一个对象中字段存在其他对象的引用类型,推荐深拷贝
浅拷贝速度快,代价小 深拷贝相对较慢,代价大

通过实例理解浅拷贝和深拷贝TODO


相关文章

  • Java基础 - 深拷贝和浅拷贝

    Java 的深拷贝和浅拷贝 什么是深拷贝、浅拷贝 (深克隆、浅克隆)? 在 Java 中,数据类型分为 基本数据类...

  • java中的深拷贝和浅拷贝

    简单记录一下java中的深拷贝和浅拷贝,深拷贝和浅拷贝只是针对对象而言的. 1 深拷贝代码 2 浅拷贝代码 3 测...

  • java 对象的拷贝

    拷贝:即复制 对象拷贝:即对象复制 java 对象拷贝分类:浅拷贝、深拷贝 java 对象的浅拷贝和深拷贝针对包含...

  • iOS面试题-第二页

    11.深拷贝和浅拷贝的理解. 深拷贝;拷贝的内容. 浅拷贝:拷贝的指针. 深拷贝如: NSMutableDicti...

  • 实现一个深拷贝

    深拷贝和浅拷贝是针对复杂数据类型来说的,浅拷贝只拷贝一层,而深拷贝是层层拷贝。 代码中理解...

  • Objective-C中的浅拷贝和深拷贝

    Objective-C中的浅拷贝和深拷贝 Objective-C中的浅拷贝和深拷贝

  • Java的浅拷贝和深拷贝

    首先需要明白,浅拷贝和深拷贝都是针对一个已有对象的操作。那先来看看浅拷贝和深拷贝的概念。 在 Java 中,除了基...

  • JS中的深拷贝与浅拷贝

    知乎:js中的深拷贝和浅拷贝? 掘金: js 深拷贝 vs 浅拷贝 前言 首先深拷贝与浅拷贝只针对 Object,...

  • 关于Java的浅拷贝和深拷贝

    浅拷贝和深拷贝是什么? 浅拷贝和深拷贝都是针对已经存在了的对象的操作,在java中,基本数据类型有八种,和引用数据...

  • iOS深拷贝(MutableCopy)与浅拷贝(Copy)的区别

    深拷贝和浅拷贝的概念 iOS中有深拷贝和浅拷贝的概念,那么何为深拷贝何为浅拷贝呢?浅拷贝:浅拷贝并不拷贝对象本身,...

网友评论

      本文标题:理解Java中的深拷贝和浅拷贝

      本文链接:https://www.haomeiwen.com/subject/snzbixtx.html