当前位置:  开发笔记 > 编程语言 > 正文

性能更好 - clone()或使用new关键字进行实例化?

如何解决《性能更好-clone()或使用new关键字进行实例化?》经验,为你挑选了2个好方法。

当我们想为某个类创建新对象时,如果我们已经有了一个,我们应该使用clone()还是使用new关键字实例化?

是的,clone()也会复制所有成员,但我很好奇这个无关紧要的情况.

ClassType foo = new ClassType();
ClassType bar = new ClassType();  // here, will foo.clone() be better choice?

我在目前的任务中需要这个,因为我正在使用通用列表(列表<T >),它有时会变得很大并且在实际用于UI之前通过'n'层.(它们之间转换为数组并返回列表以及序列化目的).所以,我只是想提高性能.



1> Gerrie Schen..:

Clone()new无论如何都会这样做,为什么要这么麻烦?

Clone()无论如何,调用将导致新的引用,并且所有成员都被复制,因此它肯定会更慢.



2> Marc Gravell..:

听起来你在做过早的优化.简介,您通常会在时间进展中感到惊讶.我怀疑它会在这里,除非你的"克隆"使用序列化.

那说; ICloneable.Clone()值得避免的原因很简单,因为它定义不清楚(深度与浅度)并且很少得到支持.在幕后,大多数Clone()实现要么只做一个new(); // now copy properties,要么使用序列化.

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有