克隆及new及深浅拷贝效率

clone和new

拿孙悟空来举例
clone只需要吹个毫毛就可以生成多个
new还需要多个石头才孕育出多个猴子 :)

clone在内存中复制已有对象的内存,不会经过构造函数
new则是通过开辟内存新建一个对象

那么谁的效率高呢,从文字来看应该是clone,实时是否如此呢,我们往下看

clone
public class ProtoType implements Cloneable{
    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
}
@Test
    public void testClone() throws CloneNotSupportedException {
        ProtoType p = new ProtoType();
        ProtoType copy = (ProtoType) p.clone();
        log.info("p == copy: {}", p == copy);
    }
12:51:16.305 [main] INFO prototype.Run - p == copy: **false**

这里看到内存地址的确不同,为什么不用hashcode来代替验证可以参考这篇文章

你可能感兴趣的:(java,clone,深拷贝浅拷贝,java)