久久科技网

列表复制:深度复制和浅层复制的用法和区别

久久科技网 1

列表复制:深度复制和浅层复制的用法和区别

作者:Demonnnnn博客csdn。Net/demonliuhui/article/details/54572908众所周知,列表本质上是一个数组,数组以地址的形式存储,如上图所示,列表a的浅拷贝被制作到列表B。由于浅拷贝被制作,a的内容被直接复制到B。Java中相同内容的数组指向相同的地址,也就是说,在浅层复制之后,a和B指向相同的地址,结果是更改B也会更改a,因为更改B意味着更改B指向的地址的内容。由于a也指向相同的地址,a和B一起更改几个浅层副本,遍历循环副本,使用list实现类构造方法,使用list Addall()方法,实现类构造方法。使用system Arraycopy()方法测试和结果如图所示,深度复制是在将a复制到B的同时为B创建一个新地址,然后将地址a的内容传输到地址B。lista和listb的内容相同,但因为指向的地址不同,这些更改不会相互影响深度复制方法1使用序列化方法2克隆方法java以不同的方式处理对象和基本数据类型。在Java中,对象作为入口参数的传输默认为“引用传输”,即只传递对象的一个“引用”。“引用”的概念与C语言中指针引用的概念相同,当输入变量在函数体内发生变化时,它实际上是对该对象的直接操作。除了当函数传递值时是“引用传递”外,每当使用“=”为对象变量分配值时是“引用传递”测试和结果在浅层复制的情况下,在修改和销毁源数据后,目标集中使用相同引用指向数据的对应元素也会更改,当要求需要深度复制时,如果使用上述方法,请确保列表中的T类对象不容易在外修改或销毁参考http://blog.csdn.net/lian_1988/article/details/45970927

http://blog.sina.com.cn/s/blog_605f78830102uy6x.html

最近采访了bat,并整理了采访材料《java访谈batj清关手册》,内容涉及java核心技术、JVM、java并发、SSM、微服务、数据库、数据结构等

如果文章有帮助,请阅读并转发

感谢您的支持(*^\u^*)

macos支持app吗

ios怎么更改成美国

linux批量压缩文件的命令是什么

给农民起名字的人叫什么

古董玩具去哪收购好卖

小说翡翠真假怎么分辨

玉石该怎么消磁最快

小红书辣妈穿搭怎么样啊

首页标题seo优化策略

免责声明:文中图片均来源于网络,如有版权问题请联系我们进行删除!

标签:浅拷贝 深拷贝 java csdn