- 直接赋值复制:
理解:两个相同的类对象赋值的话,复制的是引用,如将a2赋值给a1(A a1 = a2),则两个变量指向同一个对象,所以当a1变化时,a2也会变化;反之当a2变化时,a1也会变化。
- 浅拷贝:
理解:如果是基本数据类型的话,就是直接复制值。
如果是引用数据类型的话,就是复制引用但不复制引用的对象。即两个对象的地址引用的是同一个对象。
- 深拷贝:
理解:深拷贝复制的不只是对象本身,还有对象包含的引用指向的所有对象,即创建一个相同的对象,但引用的不是同一个对象,两个对象是单独分开的。
- 内存四大组成部分:栈区、堆区、全局/静态区、只读区
- 栈区:
存放数据:局部参数、形参
- 堆区:
存放数据:new出来的数据
- 全局/静态区:
存放数据:全局变量和静态变量
- 只读区:
存放数据:常量
总结:
浅拷贝:复制引用但不复制引用的对象(两个对象的地址引用的是同一个对象。)
深拷贝:复制引用并且复制引用的对象(引用的不是同一个对象,两个对象是单独分开的)
---end---
扫描下方二维码
添加好友,备注【交流】
可私聊相互学习,共同进步,资源共享