java 深拷贝_Java的深拷贝和浅拷贝的介绍

这个概念估计懂C++的人不会陌生,但是很多朋友并不了解,概括起来将浅拷贝就是指两个对象公用一个值,一个的改变了另一个也会随之改变,深拷贝则是两个对象值相等,但是相互独立互不影响。下面我们将关于java的浅拷贝和深拷贝做一个详细讲解。

java中常见的拷贝操作有三种:operator、拷贝构造函数和clone()方法。但是java不支持运算符重载,所以在自定义类型中无法定义operator=,拷贝构造函数不用多说,相信大家再熟悉不过了,下面重点讲解一下clone方法的用法。

如果要实现Cloneable接口,要先检查 Object的 clone方法是否实现了Cloneable接口,如果没有出现异常

CloneNotSupportedException对象,那么Cloneable接口只是个标准,没有任何方法和作用,这种情况下只要写上 implements

Cloneable就能解决了。

为了防止意外支持clone操作,Object的

clone方法通常被设置为protected权限,改写从obeject继承的clone方法后,建议将权限设置为public。一般情况下如果要给自己的类添加拷贝功能,可以添加拷贝构造函数和实现Cloneable接口。

下面放上一幅三种拷贝方法的对比图:

19c8b8dd9872befc091389376df2fefb.png

以上就是关于Java的深拷贝和浅拷贝的介绍,从小编的介绍来看,本文的知识点并不难理解,其实java学习也是如此,并没有大家想象中那么玄乎,你只要认真钻研,多实践练习,掌握每一个知识点,你也可以成为IT精英人才。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值