我想要做的是将大量字节移位到10个更高的索引。我知道我可以这样轻松地做到这一点:
byte [] bArray = new byte [1000000];
System.arraycopy(bArray, 0 , bArray, 10, 900000 );
然而,在我们的特定代码中,每次调用方法时我们都会这样做,并且在我们的代码中该方法将被称为百万次。这让我们担心关于内存泄漏,因为这将在JVM上进行大量工作,以高频率反复重新分配堆。
答案 0 :(得分:4)
System.arraycopy使用起来非常安全 - 它不会导致“泄漏”或以某种方式破坏阵列。它也是在Java中移动大量数据的最有效方式。
System.arraycopy与堆管理没有任何关系 - 它不会分配任何额外的存储空间。
也就是说,移动大量数据并不是特别有效 - 它会“污染”缓存,导致性能爬行。值得考虑不同的设计。