我看Object中clone方法的源码什么也没做
protected native Object clone() throws CloneNotSupportedException;
完后定义一个克隆类的时候,如果是浅复制,则覆盖此方法也仅仅是调用Object的clone方法,即:public Object clone() throws CloneNotSupportedException {   
        return super.clone();   
    }   而既然super.clone(); 其实什么也没做,那究竟是如何实现克隆的呢?

解决方案 »

  1.   

    突然开窍了,是因为native是吧?那谁能告诉我在哪看这个源码,或者讲讲究竟是如何克隆的
      

  2.   

    并非什么也没做
    Object中关于clone的源码是这样的protected native Object clone() throws CloneNotSupportedException;关键在于这个native
    声明了这个方法执行时调用的是本地方法,也就是JDK中实现用C或别的语言实现的方法
    所以调用Object中的clone时,实际上执行的是用C或者别的语言实现过的方法具体的你搜一下native,有详细的介绍
      

  3.   

    jdk虽然开源,但内部的代码还没开源,应该找不到那个本地方法是怎么实现的吧
    有个叫OpenJDK的项目,以开源的方式实现了JDK,包括底层,你可以看看这个