System.arraycopy和Arrays.copyOf()

要变来来去,对某一位修改的,用StringBuffer/Bulider别用String,String是常量。或者用char []

 

System.arraycopy()可以复制数组;(复制一个数组到另一个数组,数组的长度不变的)

Arrays.copyOf()可以简便的创建数组副本。(复制数组到另一个数组,长度可以变长,可用于原数组扩容)

 

//基本数据类型(其他类似byte,short···)  
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;  
    }  

其实copyOF就是新建了一个更大的数组,再调用arraycopy复制到新数组去,返回新数组,完成了扩容。

 

至于arraycopy,是native方法,我没有细看C++的实现。可以参考这一篇

http://blog.csdn.net/u011642663/article/details/49512643

 

posted @ 2017-08-11 09:28  wzb的QQ空间  阅读(374)  评论(0编辑  收藏  举报