关于clone

luqing414 2010-04-22 01:13:36
我看Object中clone方法的源码什么也没做
protected native Object clone() throws CloneNotSupportedException;
完后定义一个克隆类的时候,如果是浅复制,则覆盖此方法也仅仅是调用Object的clone方法,即:

public Object clone() throws CloneNotSupportedException {
return super.clone();
}

而既然super.clone(); 其实什么也没做,那究竟是如何实现克隆的呢?
...全文
71 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zfq642773391 2010-04-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 luqing414 的回复:]
突然开窍了,是因为native是吧?那谁能告诉我在哪看这个源码,或者讲讲究竟是如何克隆的
[/Quote]
jdk虽然开源,但内部的代码还没开源,应该找不到那个本地方法是怎么实现的吧
有个叫OpenJDK的项目,以开源的方式实现了JDK,包括底层,你可以看看这个
zfq642773391 2010-04-22
  • 打赏
  • 举报
回复
并非什么也没做
Object中关于clone的源码是这样的

protected native Object clone() throws CloneNotSupportedException;

关键在于这个native
声明了这个方法执行时调用的是本地方法,也就是JDK中实现用C或别的语言实现的方法
所以调用Object中的clone时,实际上执行的是用C或者别的语言实现过的方法

具体的你搜一下native,有详细的介绍
luqing414 2010-04-22
  • 打赏
  • 举报
回复
突然开窍了,是因为native是吧?那谁能告诉我在哪看这个源码,或者讲讲究竟是如何克隆的
believefym 2010-04-22
  • 打赏
  • 举报
回复
楼主搜下native

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧