JDK, JRE and JVM.
JRE and JDK
Oracle provides two principal software products in the Java™ Platform, Standard Edition (Java™ SE) family:
Java SE Runtime Environment (JRE)
The JRE provides the libraries, Java virtual machine, and other components necessary for you to run applets and applications written in the Java programming language. This runtime environment can be redistributed with applications to make them free-standing.
Java SE Development Kit (JDK)
The JDK includes the JRE plus command-line development tools such as compilers and debuggers that are necessary or useful for developing applets and applications.
Java Programming Language
The Java Programming Language is a general-purpose, concurrent, strongly typed, class-based object-oriented language. It is normally compiled to the bytecode instruction set and binary format defined in the Java Virtual Machine Specification. For more information see Language Features.
Java Virtual Machines
The Java virtual machine is an abstract computing machine that has an instruction set and manipulates memory at run time. The Java virtual machine is ported to different platforms to provide hardware- and operating system-independence.
The Java Platform, Standard Edition provides two implementations of the Java virtual machine (VM):
Java HotSpot Client VM
The client VM is an implementation for platforms typically used for client applications. The client VM is tuned for reducing start-up time and memory footprint. It can be invoked by using the
-clientcommand-line option when launching an application.
Java HotSpot Server VM
The server VM is an implementation designed for maximum program execution speed, trading off launch time and memory. It can be invoked by using the
-servercommand-line option when launching an application.
For more information, see the VM documentation.