首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >入住腾讯云+社区

入住腾讯云+社区

原创
作者头像
陈灬大灬海
修改2018-09-05 17:43:17
1.3K0
修改2018-09-05 17:43:17
举报

对象的copy你兴许只是懵懂,或者是并没在意,来了解下吧。

对于的github基础代码https://github.com/chywx/JavaSE

最近学习c++,跟java很是相像,在慕课网学习c++也算是重温习了下java基础

明白了当初讲师一直强调java传递的话只有值传递,不存在引用传递,为什么一直要重复这,既然只有值传递,为啥还强调不是引用传递

毛病啊这是

 学了c++才知道,原来c++有值传递,引用传递的说法,但是java只是值传递

最简单的理解就是对于方法调用

比如 f(int a,int b) 这是值传递,传递过来的值不会被修改。

再如 f(int &a,int &b)这是引用传递,传递过来的值会被修改

步入正轨,说一说java的浅拷贝(Shallow Copy)、深拷贝(Deep Copy)。

浅拷贝(Shallow Copy):①对于数据类型是基本数据类型的成员变量,浅拷贝会直接进行值传递,也就是将该属性值复制一份给新的对象。因为是两份不同的数据,所以对其中一个对象的该成员变量值进行修改,不会影响另一个对象拷贝得到的数据。②对于数据类型是引用数据类型的成员变量,比如说成员变量是某个数组、某个类的对象等,那么浅拷贝会进行引用传递,也就是只是将该成员变量的引用值(内存地址)复制一份给新的对象。因为实际上两个对象的该成员变量都指向同一个实例。在这种情况下,在一个对象中修改该成员变量会影响到另一个对象的该成员变量值。

深拷贝(deep copy)相对于浅拷贝而言,对于引用类型的修改,并不会影响到对应的copy对象的值。每一层的每个对象都进行浅拷贝=深拷贝。

原文链接https://cloud.tencent.com/developer/article/1335897

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档