当前位置: 首页 > 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(); // 浅克隆}
}
<
http://www.dtcms.com/a/178124.html

相关文章:

  • 基于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 室内光学跟踪系统
  • 第十六届蓝桥杯大赛软件赛C/C++大学B组部分题解
  • springCloud/Alibaba常用中间件之GateWay网关
  • 从ellisys空口分析蓝牙耳机回连手机失败案例
  • npm包之serve-favicon
  • Day 14 训练
  • 华为首款鸿蒙电脑正式亮相
  • 开发函数踩坑记 sum(1) over(partition by stock_code order by trade_date asc)
  • 2022年8月,​韩先超对中移信息进行微服务架构原理(Docker+k8s+DevOps+Go等)培训
  • HuggingFace与自然语言处理(从框架学习到经典项目实践)[ 01 API操作 ]
  • 【嵌入式开发-SPI】