Java数组赋值效率比较问题

本文对比了四种数组复制方法的效率:for循环逐一复制、System.arraycopy、Array.copyOf及使用clone方法。通过源码分析和实验得出结论:System.arraycopy最快,其次为clone方法,再次为Array.copyOf,效率最低的是for循环。文章提供了对每种方法的具体解释和相关链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.for 循环逐一复制
2.System.arraycopy

3.Array.copyOf
4.使用clone方法
以上四种方法效率比较:

  System.arraycopy > clone > System.copyOf > for循环

注解:arraycopy作为natvie(本地)方法,是最快的,下面该方法源码的描述。
public static native void arraycopy(Object src, int srcPos,Object dest, int destPos,int length); 
Arrays.copyOf(Arrays类)的实现,在源码中是调用System.copyOf的,多了一个步骤。
关于clone的源码定义如下;
protected native Object clone() throws CloneNotSupportedException;
关于clone网上好多帖子给出的是实验结果。
一下帖子可能讲的更详细:
http://xuyuanshuaaa.iteye.com/blog/1046621
http://blog.youkuaiyun.com/stand1210/article/details/52686740
(效率实验)
http://blog.youkuaiyun.com/tingzhiyi/article/details/52344845




转载于:https://www.cnblogs.com/shuoli/p/7259381.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值