java深浅拷贝

1、浅拷贝:

例如数组,就只是将数组引用指向了另一个句柄,这样改变一个数组的时候,另一个指向的数组也会改变。

一个句柄改变值内容,另一个句柄访问的内容也随之改变

浅拷贝是会将对象的每个属性进行依次复制,但是当对象的属性值是引用类型时,实质复制的是其引用,当引用指向的值改变时也会跟着变化。

int[] arr={1,2,3};

int[] brr=arr;

2、深拷贝:信息层层拷贝,引用完全隔离

深拷贝后的对象与原来的对象是完全隔离的,互不影响,对一个对象的修改并不会影响另一个对象。

拷贝方式:

2.1构造函数方法

下面是数组的深拷贝

2.2 重写clone()方法

步骤:1、重写从Object父类继承而来的clone()方法,并修改为public

2、实现Cloneable接口,来告诉jvm此类允许克隆

结论:重写clone()方法的深拷贝只能对当前类的信息进行拷贝,无法拷贝当前类的引用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值