当前位置: 首页 > 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.xdnf.cn/news/336205.html

相关文章:

  • 【统计学基础】随机抽样的特点
  • Oracle OCP认证考试考点详解083系列13
  • Windows系统安装Cursor与远程调用本地模型QWQ32B实现AI辅助开发
  • 服务器托管的常见问题
  • Rspack:字节跳动自研 Web 构建工具-基于 Rust打造高性能前端工具链
  • C——VS的调试技巧
  • 图灵码上爬第5题:屠龙刀--爬虫逆向
  • 7系列 之 OSERDESE2
  • Pandas比MySQL快?
  • CentOS的防火墙工具(firewalld和iptables)的使用
  • Linux云计算训练营笔记day04(Rocky Linux中的命令)
  • 微信小程序备案的一些记录
  • Logback官方文档翻译章节目录
  • 【漫话机器学习系列】247.当 N=整个母体(WHEN N=POPULATION)
  • 【wpf】11 在WPF中实现父窗口蒙版效果:原理详解与进阶优化
  • 新能源汽车CAN通信深度解析:MCU、VCU、ECU协同工作原理
  • 云计算的基础概论
  • 深入解析建造者模式(Builder Pattern)——以Java实现复杂对象构建的艺术
  • Django之账号登录及权限管理
  • LeetCode算法题(Go语言实现)_61
  • MYSQL之索引结构,为何要用B+树
  • 浅谈 Shell 脚本编程中引号的妙用
  • C++复习类与对象基础
  • 软件逆向工程核心技术:脱壳原理与实战分析
  • 《企业级前端部署方案:Jenkins+MinIO+SSH+Gitee+Jenkinsfile自动化实践》
  • 通过混合机器学习和 TOPSIS 实现智能手机身份验证的稳健行为生物识别框架
  • 【FAQ】HarmonyOS SDK 闭源开放能力 — PDF Kit
  • springboot使用mybatisPlus进行数据库增删改查
  • 华为首款鸿蒙电脑正式亮相
  • 超详细!RxSwift 中的 BehaviorRelay 使用教程(含原理 + 示例 + 实战)