跳读了一部分,看到了原形模式(Prototype),Cloneable这里的说法就很有问题。
作者说: 当需要创建多个类似的复杂对象时,我们就可以考虑用原型模式。究其本质,克隆操作时Java虚拟机会进行内存操作,直接拷贝原型对象数据流生成新的副本对象,绝不会拖泥带水地触发一些多余的复杂操作(如类加载、实例化、初始化等),所以其效率远远高于“new”关键字所触发的实例化操作。
但并不是,且不说一个类的clone方法被调用的时候,下次new已经不会再触发类加载了。
在通常情况下,使用`new`关键字创建对象比使用`clone`方法克隆对象更有效率。`new`关键字直接在堆上分配内存,并调用构造函数初始化对象的状态。这是一种直接的方式,不需要考虑对象的当前状态或复制它的字段。因此,`new`操作通常是高效的。
相比之下,`clone`方法需要在堆上创建一个新的对象,并将原始对象的字段复制到克隆对象中。这涉及到遍历对象的字段并逐个复制它们的值。
clone方法更不可靠,而不是远比new效率更高。
相关推荐
© 2023-2025 百科书库. All Rights Reserved.
发表评价