数据复制是一项使用频率很高的功能,JDK中提供了一种高效的API来实现它。System.arrayCopy()函数是native函数,通常native函数的性能要优于普通的函数,所以,仅处于性能考虑,在软件开发中,应尽可能调用native函数。
ArrayList和Vector大量使用了System.arrayCopy来操作数据,特别是同一个数组内元素的移动及不同数组之间元素的复制。
arrayCopy的本质是让处理器利用一条指令处理一个数组中的多条记录,有点像汇编语言里面的串操作指令(LODSB、LODSW、LODSB、STOSB、STOSW、STOSB),只需指定头指针,然后开始循环即可,即执行一次指令,指针就后移一个位置,操作多少数据就循环多少次。