Java Development Kit
The Java Development Kit, abbreviated as JDK, is a toolbox for creating Java applications and applets. As the name suggests, the JDK provides a developer will all the tools that are required to build a high-end enterprise web application in Java and deliver it successfully to clients. The JDK includes the following components namely the Java Runtime Environment (JRE), an interpreter/loader (Java), a compiler (javac), an archiver (jar), a documentation generator (Javadoc), and other Java frameworks.
How is the JDK used?
The Java Development Kit is mainly used by core Java developers considering the nature of components it contains. A key component of the JDK is JRE. This is because any Java program will require a conducive runtime environment such that it can thrive and function efficiently. Alongside JRE, the above-mentioned components of JDK are all equally important to develop quality applications.
Java Virtual Machine
The Java Virtual Machine can be broken down into a specification, an implementation and a runtime instance. As a specification, the task of the JVM is dictated however implementors still retain the flexibility of choosing any algorithm over the other. A particular Java program that meets the criteria of the JVM is treated as an implementation of the Java Virtual Machine. Finally, every time a Java program is called for execution, an instance of the JVM is created.
How does the JVM work?
The Java Virtual Machine can be thought of an extension of the Java Runtime Environment at runtime. The JVM is informally known as the interpreter as it is solely responsible for interpreting the code and carrying out the execution. It also safely abstracts the inner mechanism of any code from clients who are only concerned with the end-result.