title: What is the use of JVM if JIT is performing bytecode conversion to machine instructions
body: <p>I am really struggling to understand the following thing</p>
  
  <p>Previously I know:</p>
  
  <p>When a Java program is compiled <code>.class</code> file will be generated. In that code is in the form of  bytes. Then the <code>JVM</code> will translate that byte code into machine understandable format.</p>
  
  <p>Now I see in <a href="https://stackoverflow.com/a/95787/139985">one of the questions in SO</a></p>
  
  <blockquote>
    <p>A Just-In-Time (JIT) compiler is a feature of the run-time
    interpreter, that instead of interpreting bytecode every time a method
    is invoked, will compile the bytecode into the machine code
    instructions of the running machine</p>
  </blockquote>
  
  <p>So here JIT is converting the bytecode to machine instructions. Then what is the use of JVM. We are able to do this with JIT. In my knowledge JIT is for only improving the performance of JVM.</p>