在閱讀ArrayList源碼的過程中發現了底層在實現添加和刪除元素的時候,都使用了System.arraycopy方法。
在閱讀過System.arraycopy源碼後,發現了C中的經典複製語句。
while(from
< end)
*(to++) = *(from++);
arraycopy
方法是一個本地方法。
在 OpenJDK 源碼包中可以找到
openjdk6-src/hotspot/src/share/vm/prims/jvm.cpp
文件。
既然這樣的話,一切都豁然開朗,爲什麼使用arraycopy方法,因爲C在操作內存的效率遠高於Java。
所以在許多優化文檔中都能看見推薦使用arraycopy方法來批量處理數組。