拷贝与赋值的区别(比较赋值、浅拷贝、深拷贝)
导读:1、无论是浅拷贝还是深拷贝,拷贝对象后是否会开辟新内存,取决于被拷贝对象的数据类型是否可变,一般来讲,可变的数据类型会开辟新内存,不可变数据类型反之不会开辟新内存,进行内存地址的引用(-5-256以外的大整数池会开辟内存,但我本地进行测试比较内存还是一样的,有问题 ...
1 、无论是浅拷贝还是深拷贝 ,拷贝对象后是否会开辟新内存 ,取决于被拷贝对象的数据类型是否可变,一般来讲 ,可变的数据类型会开辟新内存 ,不可变数据类型反之不会开辟新内存 ,进行内存地址的引用(-5-256以外的大整数池会开辟内存 ,但我本地进行测试比较内存还是一样的 ,有问题)
2 、要在单层 、嵌套型对象中逐一比较拷贝
3 、浅拷贝和深拷贝的区别主要体现在对嵌套型结构的拷贝上
output:
================赋值==================
[1, 2, 5, [78, 90], 9] [1, 2, 5, [78, 90], 9]
================浅拷贝==================
原始列表: [1, 2, 5, [78, 90, 100]] 拷贝后列表: [1, 2, 5, [78, 90, 100]]
================深拷贝==================
原始列表: [1, 2, 5, [78, 90, 100, 0]] 拷贝后列表: [1, 2, 5, [78, 90, 100]]
True
声明:本站所有文章 ,如无特殊说明或标注 ,均为本站原创发布 。任何个人或组织 ,在未征得本站同意时 ,禁止复制 、盗用 、采集 、发布本站内容到任何网站 、书籍等各类媒体平台 。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理 。
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!