CS-Notes 学习笔记
面试常问Java 后端 · Java 基础

浅拷贝和深拷贝有什么区别?怎样实现深拷贝?

先自己想一想,再看参考要点

参考要点

  • 浅拷贝的引用类型字段与原对象指向同一个对象
  • 深拷贝要把对象图中的可变对象逐层复制,String 这类不可变对象可以共享,例如订单的商品列表要复制列表本身和其中的每个商品
  • 用 clone() 实现时先调用 super.clone(),再为可变的引用字段新建对象并复制内容
  • clone() 需要实现 Cloneable、处理异常和类型转换,更推荐拷贝构造函数或拷贝工厂
在学习站中自测这道题看这道题所在的一天

学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。