A Java source code is compiled by java compiler(javac) and converted into the bytecode.This bytecode is then executed by the JVM. A Java Virtual Machine (JVM) is a software program and data structures which use a virtual machine model to execute the instructions.
JVM accepts accepts the byte code and provides output of that bytecode.
A bytecode is highly optimized set of instructions.The JVM is combines a set of standard class libraries which implement the Java API (Application Programming Interface).