When copying an entire array, I’ve often seen people write:
int[] dest = new int[orig.length];
System.arraycopy(orig, 0, dest, 0, orig.length);
But it seems to me there is no reason to favor this over:
int[] dest = orig.clone();
They’re both shallow copies anyway. Probably these folks just don’t realize that clone exists. So is there any reason not to use clone?
No. If you’re really microbenchmarking, then maybe, depending on what JVM you’re running. But in actuality, no.