钻芒博客

浅拷贝_java浅拷贝和深拷贝

⊙﹏⊙ 深拷贝和浅拷贝这两个概念是在项目中比较常见的,在很多时候,都会遇到拷贝的问题,我们总是需要将一个对象赋值到另一个对象上,但可能会在改变新赋值对象的时候,忽略掉我是否之后还需位拷贝拷贝的是地址(也叫浅拷贝),而值拷贝则拷贝的是内容(深拷贝)。深拷贝和浅拷贝可以简单理解为:如果一个类拥有资源,当这个类的对象发生复制过程的时候,资源。

ˇ△ˇ 在实际开发当中,我们经常会遇到要对对象进行深拷贝的情况。而且深拷贝这个问题在面试过程中也经常会遇到,下面就对本人在学习过程中的收获,做以简单的总结。什么是浅拷贝,什么是深拷如何区分深拷贝与浅拷贝?简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明是浅拷贝,如果B没变,那就是深拷贝。深入点来说,就是B。

>▂< 总结:浅拷贝只是对指针的拷贝,拷贝后两个指针指向同一个内存空间,深拷贝不但对指针进行拷贝,而且对指针指向的内容进行拷贝,经深拷贝后的指针是指向两个不同地址的指针。再说几句:对于浅拷贝(shallow copy)和深度拷贝(deep copy),本节并不打算一上来抛出它们的概念,而是先从它们的操作方法说起,通过代码来理解两者的不同。Python浅拷贝常见的浅拷贝的方。

╯△╰ 1 拷贝就是一个变量的值传给另外一个变量。在python 中id()方法可以查看存放变量的内存地址,这为我们下面理解深浅copy提供了便利。2 浅拷贝是指把存放变量的地址值传给被赋值,最对于这个问题,可以考虑从深拷贝和浅拷贝的使用或者起源说起,也就是为什么会出现这个问题。

●^● 如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,自食其力。1. 如果是基本数浅拷贝之后基本类型数据field2 和filed1 是不同属性,互不影响。但引用类型refObj 仍然是同一个,改变之后会对另一个对象产生影响。简单来说可以理解为浅拷贝只解决了第一层的问题。

浅拷贝_java浅拷贝和深拷贝

分享:
扫描分享到社交APP
发表列表
请登录后评论...
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~