当前位置: 首页 > 面试题库 >

有什么理由比之clone()更喜欢System.arraycopy()吗?

杜弘伟
2023-03-14
问题内容

复制整个数组时,我经常看到人们写:

int[] dest = new int[orig.length];
System.arraycopy(orig, 0, dest, 0, orig.length);

但是在我看来,没有理由对此表示赞同:

int[] dest = orig.clone();

无论如何,它们都是浅表副本。这些人可能只是不知道clone存在。那么有什么理由不使用clone吗?


问题答案:

否。 如果您 确实要进行微 基准测试,则可能取决于您正在运行的JVM。但是实际上,没有。



 类似资料:
  • 本文向大家介绍你最喜欢用哪些编辑器?喜欢它的理由是什么?相关面试题,主要包含被问及你最喜欢用哪些编辑器?喜欢它的理由是什么?时的应答技巧和注意事项,需要的朋友参考一下 vscode。可以灵活安装不同插件,真正做到了一个编辑器,适配所有的编程语言。 它和virtual stuido理念不同,vs是想把所有的都集成到一起,导致它的安装包越来越庞大,臃肿,而vscode凭借插件运行机制,即插即用,非常灵

  • 问题内容: 在Swing中,密码字段具有(returns )方法,而不是通常的(returns )方法。同样,我也遇到了不建议使用密码的建议。 为什么涉及密码安全性受到威胁?使用起来感觉不方便。 问题答案: 字符串是不可变的。这意味着一旦创建了,如果另一个进程可以转储内存,则除了反射之外,你将无法清除数据,然后再进行垃圾回收。 使用数组,你可以在使用完数据后显式擦除数据。你可以用任何你喜欢的东西覆

  • 问题内容: 我正在实现一个API,有一个方法可以传递程序从中读取资源的路径列表 我正在使用varargs使调用方法尽可能方便用户,就像这样 这是varargs的适当用法吗?还是传递数组更好? 问题答案: 在您的情况下,varargs很好。您实际上并不需要对要导入的路径进行数组处理,因为除了将它们传递给您的方法外,您不需要执行任何其他操作。 varargs功能使您不必为了将一组值传递给一次性方法而显

  • 问题内容: 我正在使用Eclipse生成和,并且有一个标记为“使用比较类型”的选项。缺省是不选中此选项并用于比较类型。有什么我比我更喜欢的理由吗? 不使用: 使用: 我通常会选中该选项,然后去掉“ ”检查。(这是多余的,因为空对象将始终失败。)是否有任何不好的主意? 问题答案: 如果你使用,让你实现将保留方法的对称性合同:。如果看似有限制,请仔细检查你的对象等效性概念,以确保你的首要实现完全维护类

  • 问题内容: 在Swing中,密码字段具有方法,而不是通常的方法。同样,我遇到了不使用String密码的建议。 为什么String涉及密码安全性受到威胁?使用起来感觉不方便。 问题答案: 字符串是不可变的。这意味着一旦创建了String,如果另一个进程可以转储内存,则除了反射之外,你将无法清除数据,然后再进行垃圾回收。 使用数组,你可以在使用完数据后显式擦除数据。你可以用任何你喜欢的东西覆盖阵列,并

  • 问题内容: Bloch中的方法同时使用和复制一个数组。 如何比较这两种复制方法,何时应使用哪种复制方法? 问题答案: 同之处在于不仅复制元素,还创建新的数组。复制到现有阵列中。 这是的来源f,你可以看到它在内部用于填充新数组: