title: reading and writing sockets and files only use native memory?
body: <p>Recently I've been into JVM details and encountered a term <strong>Direct Memory</strong>. An answer from <a href="https://stackoverflow.com/a/52791791/2361308">@Peter Lawrey</a> gripped my attention. </p>
  
  <blockquote>
    <p>All system calls such as reading and writing sockets and files <strong>only use native memory</strong>. They can't use the heap. </p>
  </blockquote>
  
  <hr>
  
  <h3>My Questions</h3>
  
  <ol>
  <li>Is this true? </li>
  <li>Any where I can collate this statement? </li>
  <li>Does that mean any call in <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/package-summary.html" rel="nofollow noreferrer"><code>NIO</code></a>, I will just directly use <em>Direct Memory</em>?</li>
  </ol>