JDK is a development kit that includes the JRE and additional tools for Java development, making it suitable for creating and compiling Java applications. It is used by developers to create, compile, and run Java applications.
JRE is a runtime environment that includes the JVM along with libraries and other components needed to run Java applications. It provides the necessary runtime support for executing Java applications but does not include the development tools needed to create them.
JVM is the virtual machine that executes Java bytecode and provides a runtime environment for Java applications to run.