System.arraycopy()源码。可以看到是native方法:
native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如C和C++)实现的文件中。 可以将native方法比作Java程序同C程序的接口。
public static native void arraycopy(Object src, int srcPos, Object dest, int destPos,int length);
copyOf,下面是源码,可以看到本质上是调用的arraycopy方法。,那么其效率必然是比不上 arraycopy的
public static int[] copyOf(int[] original, int newLength) { int[] copy = new int[newLength]; System.arraycopy(original, 0, copy, 0, Math.min(original.length, newLength)); return copy; }
具体的理由不好说。不过一致的说法和实验证明是arraycopy()效率高!!!T...T
If opportunity doesn’t knock, build a door