Define Java Development Kit (JDK), Java Virtual Machine (JVM), and Java Runtime Environment (JRE)

1. Java Virtual Machine (JVM)

What is it?

The JVM is responsible for running Java programs. It’s the part of the system that takes the Java bytecode (created by the Java compiler) and translates it into machine code that the computer can understand.

Why is it important?

JVM is what makes Java platform-independent. The same Java bytecode can run on any system (Windows, Mac, Linux) that has a JVM installed. This is why we say, "Write once, run anywhere."

2. Java Runtime Environment (JRE)

What is it?

The JRE is a package that includes everything needed to run Java applications on your system: the JVM, libraries, and other components that Java programs need to run.

Why is it important?

While the JDK is for developers, the JRE is for users who want to run Java applications. If you only want to run Java programs and not develop them, you only need the JRE.

3. Java Development Kit (JDK)

What is it?

The JDK is the complete package for Java development. It includes the JRE, along with tools like the Java compiler (which turns your Java code into bytecode) and other utilities for creating Java applications.

Why is it important?

If you're a developer, you need the JDK to write, compile, and test your Java programs. It's the complete development environment for Java.

JDK Versions: Evolution of Java

Java has gone through many versions over the years, each adding new features, improving performance, and fixing bugs. Some key versions are:

Versions of JDK and Key Changes

JDK Version Key Changes
JDK 1.0 Initial version of Java (1996)
JDK 1.1 Inner classes, JavaBeans, JDBC
JDK 1.2 Collections framework introduced
JDK 1.3 HotSpot JVM, performance improvements
JDK 1.4 Assertions, NIO package
JDK 5 Generics, Enhanced for loop, Annotations
JDK 6 Performance and scripting (Java Compiler API)
JDK 7 Switch with Strings, try-with-resources
JDK 8 Lambda expressions, Streams API, Functional programming
JDK 9 Module system (Project Jigsaw)
JDK 10 Local variable type inference (var)
JDK 11 New HTTP client, removed Applets
JDK 12 Switch Expressions (preview)
JDK 13 Text blocks (preview)
JDK 14 Records and Pattern Matching (preview)
JDK 15 Sealed classes (preview)
JDK 16 Records and Pattern Matching (final)
JDK 17 Long Term Support (LTS), sealed classes
JDK 18 Simple web server, UTF-8 as default
JDK 19 Virtual threads (preview)
JDK 20 Pattern Matching enhancements
JDK 21 New LTS version, Virtual threads final

Summary:

  • JVM: Runs Java bytecode → Machine code
  • JRE: JVM + Libraries → Runs Java apps
  • JDK: JRE + Compiler/Tools → Develops Java apps

Welcome to ShikshaSanchar!

ShikshaSanchar is a simple and helpful learning platform made for students who feel stressed by exams, assignments, or confusing topics. Here, you can study with clarity and confidence.

Here, learning is made simple. Notes are written in easy English, filled with clear theory, code examples, outputs, and real-life explanations — designed especially for students like you who want to understand, not just memorize.

Whether you’re from school, college, or someone learning out of curiosity — this site is for you. We’re here to help you in your exams, daily studies, and even to build a strong base for your future.

Each note on this platform is carefully prepared to suit all levels — beginner to advanced. You’ll find topics explained step by step, just like a good teacher would do in class. And the best part? You can study at your pace, anytime, anywhere.

Happy Learning! – Team ShikshaSanchar