Java 浅拷贝 深拷贝
2024-09-01 07:14:33
- 两者区别主要在于引用数据类型的属性,对于基本数据类型采用的是值传递,所以两者一样;
- 对于浅拷贝,引用数据类型只会进行引用传递,即复制一份引用值(内存地址)给新对象,一个对象的变化会影响到另一个的引用属性对象,两者同时变化,如:数组,对象等;
- 对于深拷贝,会给引用数据类型开辟新的内存空间,并且是逐级复制开辟父级的内存空间,以及父级的父级等等,直到该属性对象可达的所有对象;
浅拷贝的实现方式:
- 构造方法传值;
- 重写clone()方法,方法体中调用super.clone()即可采用Object中的原clone方法;
深拷贝的实现方式:
- 重写clone()方法,不同的是需要对每个对象进行深层复制,并开辟内存空间;
最新文章
- python , angular js 学习记录【1】
- ZeroMQ接口函数之 :zmq_msg_get - 获取消息的性质
- QDirModel
- 我的Android第五章
- 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
- input[type=text]点击之后无边框, 一进页面就显示光标
- Javascript生成GUID
- Ant 脚本打印系统属性变量、ant内置属性
- LabVIEW设计模式系列——普遍使用值改变事件
- hadoop报错 Message missing required fields: callId, status
- SpringMVC基础学习(二)—开发Handler
- POJ 1151 Wormholes spfa+反向建边+负环判断+链式前向星
- NOIP 2017 day 1 游记
- linux中/bin和/sbin和/usr/bin和/usr/sbin
- DDD实战进阶第一波(二):开发一般业务的大健康行业直销系统(搭建支持DDD的轻量级框架一)
- 有奖试读—Windows PowerShell实战指南(第2版)
- JDBC连接数据库时候出错
- 005-优化web请求一-gzip压缩、http缓存控制和缓存校验[Pragma、Expires、Cache-Control、max-age、Last-Modified、用户刷新访问、避免过度304]
- 【Selenium-WebDriver问题点】chromeDriver和chrome浏览器版本之间的兼容性问题
- maven Missing artifact com.sun:tools:jar:1.5.0