浅拷贝和深拷贝有什么区别?怎样实现深拷贝?
先自己想一想,再看参考要点
参考要点
- 浅拷贝的引用类型字段与原对象指向同一个对象
- 深拷贝要把对象图中的可变对象逐层复制,String 这类不可变对象可以共享,例如订单的商品列表要复制列表本身和其中的每个商品
- 用 clone() 实现时先调用 super.clone(),再为可变的引用字段新建对象并复制内容
- clone() 需要实现 Cloneable、处理异常和类型转换,更推荐拷贝构造函数或拷贝工厂
参考要点
学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。