本篇文章为大家展示了深入浅析Java中对象的深复制与浅复制,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
Java对象深复制与浅复制实例详解
我们在遇到一些业务场景的时候经常需要对对象进行复制,对于对象的复制一般有两种方式,深复制和浅复制
浅复制:对象的复制仅是对象本身,对象引用的其它对方并不会复制。
深复制:对象的复制包含对象引用的对象。
Java所有对象的基类提供了clone方法,但是这个方法是protected native修饰,因此只暴露给之类去重写,外部是无法直接调用的。
我们现在来测试两种复制,首选是浅复制,浅复制要实现Cloneable接口。
// 课程对象class Class { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; }}// 学生对象class User implements Cloneable { private String name; private Long id; // 课程引用 private Class c; public Class getC() { return c; } public void setC(Class c) { this.c = c; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } @Override protected Object clone() throws CloneNotSupportedException { return super.clone(); } @Override public int hashCode() { return super.hashCode(); } @Override public boolean equals(Object obj) { if (obj instanceof User) { User user = (User) obj; if (this.id == user.getId() && this.getName() == user.getName()) { return true; } if (user.getId().equals(this.id) && user.getName().equals(this.name)) { return true; } return false; } else return false; }}
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容- Java OGNL 注入攻击的预防措施有哪些?(java ognl注入攻击如何预防 )
- Java 中如何实现 double 类型转 BigDecimal 类型?(java double转bigdecimal怎么实现)
- 在 Java 中如何利用 Map 构建表格?(java中怎么使用map做表格)
- Java 中的 exit 方法是否能够终止所有线程?(java exit是否能终止所有线程 )
- Java Supplier 接口如何有效避免空指针问题?(java supplier接口如何避免空指针)
- Java 中如何删除数组中的某个元素?(java怎么删除数组中的某个元素)
- 如何精准地区分 Java 中的重载方法?(如何区分Java中的重载方法)
- Java 中字符串赋值如何赋给另一个变量?(java字符串赋值怎么给另一个变量)
- Java 中静态初始化数组的具体方法有哪些?(Java静态初始化数组的方法是什么)
- Java 拦截器究竟有哪些作用呢?(java拦截器的作用是什么)
猜你喜欢
AI推送时光机深入浅析Java中对象的深复制与浅复制
后端开发2023-05-31
Java中对象的深复制和浅复制的详细介绍
后端开发2023-06-17
深入浅析Java中的对象与引用
后端开发2023-05-31
深入浅析Android中的ListView复用机制
后端开发2023-05-31
深入浅析Java中的对象流
后端开发2023-05-31
python变量及浅复制与深复制
后端开发2023-01-31
Python中的赋值与浅复制与深复制之间
后端开发2023-01-30
PHP数组的复制策略:深度复制与浅复制,解析与性能对比
后端开发2024-05-02
JS对象复制(深拷贝和浅拷贝)
后端开发2024-04-02
Java 浅复制和深复制的实例详解
后端开发2023-05-31
深入浅析java中的面向对象
后端开发2023-05-31
Java中的“浅复制”与“深复制”的区别与实现(附代码)
后端开发2016-02-27
JavaScript数组中的深复制与浅复制是什么
后端开发2024-04-02
深入理解Java对象复制
后端开发2024-04-02
Java对象复制(直接赋值,浅拷贝,深拷贝)
后端开发2023-08-31
MySQL并行复制的深入浅出
后端开发2022-05-24
C++中深复制和浅复制是什么
后端开发2023-06-29
深入浅析Java中的条件控制与循环控制
后端开发2023-05-31
深入浅析Java中变量与对象的作用域
后端开发2023-05-31
python3-列表的深浅复制
后端开发2023-01-31
咦!没有更多了?去看看其它编程学习网 内容吧