我看Object中clone方法的源码什么也没做
protected native Object clone() throws CloneNotSupportedException;
完后定义一个克隆类的时候,如果是浅复制,则覆盖此方法也仅仅是调用Object的clone方法,即:public Object clone() throws CloneNotSupportedException {
return super.clone();
} 而既然super.clone(); 其实什么也没做,那究竟是如何实现克隆的呢?
protected native Object clone() throws CloneNotSupportedException;
完后定义一个克隆类的时候,如果是浅复制,则覆盖此方法也仅仅是调用Object的clone方法,即:public Object clone() throws CloneNotSupportedException {
return super.clone();
} 而既然super.clone(); 其实什么也没做,那究竟是如何实现克隆的呢?
Object中关于clone的源码是这样的protected native Object clone() throws CloneNotSupportedException;关键在于这个native
声明了这个方法执行时调用的是本地方法,也就是JDK中实现用C或别的语言实现的方法
所以调用Object中的clone时,实际上执行的是用C或者别的语言实现过的方法具体的你搜一下native,有详细的介绍
有个叫OpenJDK的项目,以开源的方式实现了JDK,包括底层,你可以看看这个