There are some basic Java Terminologies that are used frequently. These terminologies include Java Virtual Machine(JVM), Java Run-time Environment(JRE) and Java Development Kit(JDK). So let’s discuss them in brief.
Java Virtual Machine (JVM)
Heart of Java programming language.
JVM is a program for a particular hardware and software platform that run Java technology applications.
JVM is an abstract machine architecture specified by the JVM specification.
JVM is responsible for converting byte-codes to machine specific code.
In other words JVM is a platform dependent execution environment that converts Java bytecodes into machine language and executes it.
Java Runtime Environment (JRE)
JRE is a run-time environment which implements JVM and provides all class libraries and other facilities necessary to execute Java programs.
Consists of JVM, core classes and supporting files.
JRE doesn’t contain any development tools like compiler, debugger etc.
Platform specific.
Java Development Kit (JDK)
The tools necessary to compile , document and package Java programs (Javac, Javadoc and jar) is included by JDK.
JDK includes a complete JRE.
Core component of Java , provides all the tools, executable and binaries required to compile, debug and execute Java programs.