title: Is there any reason to prefer System.arraycopy() over clone()?
body: <p>When copying an entire array, I've often seen people write:</p>
  
  <pre><code>int[] dest = new int[orig.length];
  System.arraycopy(orig, 0, dest, 0, orig.length);
  </code></pre>
  
  <p>But it seems to me there is no reason to favor this over:</p>
  
  <pre><code>int[] dest = orig.clone();
  </code></pre>
  
  <p>They're both shallow copies anyway. Probably these folks just don't realize that <code>clone</code> exists. So is there any reason not to use <code>clone</code>?</p>