Yhzhtk / note

知识代码笔记
https://github.com/Yhzhtk/note/issues
MIT License
108 stars 11 forks source link

java.lang.Cloneable 笔记 #41

Open Yhzhtk opened 8 years ago

Yhzhtk commented 8 years ago

Clone分类

浅Clone:仅Clone对象,其内部的字段若存在其他对象便是引用 深Clone:会将整个对象全部 Clone 一遍,内部所有类和对象都会被Clone

Clone方式

实现 java.lang.Cloneable 接口

任何类都默认基础 Object,而 Object 类有一个 protect 的方法 protected native Object clone() throws CloneNotSupportedException;

疑问 如果是对象内部的对象也实现了 Cloneable 接口,那么外部对象的 Clone 会 调内部的 clone,而不是引用吗?? 测试的答案是即便内部对象实现了 Cloneable,也是浅Clone

使用序列化的方式实现深 Clone