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