为什么 System.arraycopy 在 Java 中是原生的?
我很惊讶地在Java源代码中看到System.arraycopy是一种原生方法。
当然,原因是因为它更快。但是,代码能够采用哪些本机技巧来使其更快?
为什么不直接循环访问原始数组并将每个指针复制到新数组 - 当然这不是那么慢和麻烦?
我很惊讶地在Java源代码中看到System.arraycopy是一种原生方法。
当然,原因是因为它更快。但是,代码能够采用哪些本机技巧来使其更快?
为什么不直接循环访问原始数组并将每个指针复制到新数组 - 当然这不是那么慢和麻烦?
它不能用Java编写。本机代码能够忽略或消除 Object 数组和基元数组之间的差异。Java做不到这一点,至少效率不高。
而且它不能用单个,因为重叠数组需要语义。memcpy()