Java中的clone

  1. clone的目的:为了实现值拷贝,而不是引用拷贝(引用拷贝的问题是造成多个引用指向同一对象,若改变这个对象的值,所有引用指向的值都会改变;但有时我们不希望这样做,所以要用值拷贝)
  2. 浅克隆与深克隆:(1)浅克隆:调用从Object类继承的clone()方法,实际上是对当前对象中的每个字段做如下处理:基本类型的变量做值拷贝,非基本类型做引用拷贝;(2)深克隆:有时需要对非基本类型的字段也做值拷贝,这时候需要做两件事情:a. 为非基本类型的字段重载clone()方法;b. 为当前对象的类型重载clone()方法,并在这个方法中使用a中重载的方法
  3. 自定义clone方法要做的:实现Cloneable接口,否则会抛出异常(Cloneable中未定义任何方法,它相当于一个约定,强制程序员实现Cloneable接口,提醒clone()方法要慎用或者要自定义clone()方法)
  4. 对String的处理:String类型没有实现Cloneable接口,所以对String类型的拷贝是引用拷贝(但是因为String是final的,无法被修改,所以不用担心会出现对象值被改变的问题)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值