当前位置: 首页 > news >正文

Java 对象克隆(Object Cloning)详解

Java 对象克隆(Object Cloning)详解

对象克隆是指创建一个对象的精确副本,Java 提供了两种克隆方式:浅克隆(Shallow Clone)深克隆(Deep Clone)。下面从实现原理、使用场景到注意事项全面解析。


一、克隆的基本概念

1. 为什么要克隆?

  • 需要对象副本时避免修改原始对象
  • 比手动 new 对象并复制属性更高效(尤其复杂对象)
  • 保护性拷贝(Defensive Copy)的重要实现方式

2. 克隆的两种类型

类型特点
浅克隆复制基本类型值,引用类型复制地址(共享引用对象)
深克隆完全独立的新对象,包括所有引用对象也递归克隆

二、实现克隆的步骤

1. 实现 Cloneable 接口

  • Cloneable 是标记接口(无方法),仅表示该类允许克隆
  • 不实现会抛 CloneNotSupportedException

2. 重写 Object.clone()

@Override
protected Object clone() throws CloneNotSupportedException {return super.clone(); // 调用Object的native方法
}

3. 完整示例(浅克隆)

class Person implements Cloneable {String name;int age;Address address; // 引用类型@Overridepublic Person clone() throws CloneNotSupportedException {return (Person) super.clone(); // 浅克隆}
}
<

相关文章:

  • 基于LSTM与SHAP可解释性分析的神经网络回归预测模型【MATLAB】
  • AI学习路径
  • Ubuntu 服务器管理命令笔记
  • 查看单元测试覆盖率
  • SHA系列算法
  • C PRIMER PLUS——第6-2节:二维数组与多维数组
  • 算法中的数学:约数
  • mobile自动化测试-appium webdriverio
  • 【deepseek教学应用】001:deepseek如何撰写教案并自动实现word排版
  • 单体架构实现延时任务
  • 《Zabbix Proxy分布式监控实战:从安装到配置全解析》
  • 删除链表倒数第N个节点
  • 微信小程序上传视频,解决ios上传完video组件无法播放
  • iPhone手机连接WiFi异常解决方法
  • 森林生态学研究深度解析:R语言入门、生物多样性分析、机器学习建模与群落稳定性评估
  • 缓存局部性保留
  • R 语言机器学习:为遥感数据处理开启新视角
  • C++ 复习(一)
  • 【HCIP】----OSPF综合实验
  • (7)Nokov 室内光学跟踪系统
  • 夜读丨古代有没有近视眼?
  • 中国海警依法驱离日非法进入我钓鱼岛领海船只
  • 大四本科生已发14篇SCI论文?学校工作人员:已记录汇报
  • 印巴局势快速升级,外交部:呼吁印巴以和平稳定的大局为重
  • 五一期间7名游客接连被困青海荒漠,警方提醒严禁非法穿越
  • 观察|22项达全球最优,世行为上海营商环境“盖章”