A Java Virtual Machine (JVM) is, unsurprisingly, a virtual machine that executes Java bytecode.
Perhaps surprisingly, there is more than one active JVM implementation. However, the most used one is the one packaged with the Open Java Development Kit (OpenJDK), which is known as HotSpot. This has evolved from the original implementation by Sun Microsystems, and now developed by Oracle. It is of gigantic proportions:
The HotSpot VM code base has been worked on by hundreds of people, over the course of 20 years, so far. It's big. There are around 3000 C/C++ header and source files, comprising more than 1.2 million lines of code.
Wikipedia maintains a list of JVMs.
Perhaps surprisingly, there is a standard JVM specification describing what a JVM should implement. It is updated with each edition of the Java SE. Previously known as "Lindholm and Yellin" (the original authors), it is now cited in papers as "Lindolm et al.".