JDK 5 favicon
All About JDK 5
JDK 5 • 2004 • Java 5
GenericsAnnotationsEnumsAutoboxingjava.util.concurrentJConsole

JDK 5 and the shift from JDK 1.4

Biggest language overhaul since 1.0. Generics, Annotations, Enums, Autoboxing, Varargs, Enhanced-for, Static Imports, java.util.concurrent. ~3500 classes.

Why JDK 5 mattered

The release in context

Biggest language overhaul since 1.0. Generics, Annotations, Enums, Autoboxing, Varargs, Enhanced-for, Static Imports, java.util.concurrent. ~3500 classes.

GenericsAnnotationsEnumsAutoboxingjava.util.concurrentJConsole
  • Biggest language overhaul since 1.0. Generics, Annotations, Enums, Autoboxing, Varargs, Enhanced-for, Static Imports, java.util.concurrent. ~3500 classes.
  • Key release highlights included Generics, Annotations, Enums, Autoboxing.
  • Compared with JDK 1.4, the most visible shifts included CMS GC, Annotations, Autoboxing / Unboxing.
  • Generics change Java type safety permanently. java.util.concurrent revolutionises threading.
  • The JDK became a much more expressive modern toolkit for enterprise development, frameworks, metadata processing, and scalable application structure.
Platform stack

JDK 5 architecture preview

This larger diagram expands the smaller JDK badge into a layered platform view showing how the development kit, runtime, virtual machine, APIs, tools, and supporting subsystems fit together for this release.

Previous-version diff

What changed from JDK 1.4 to JDK 5

The JDK became a much more expressive modern toolkit for enterprise development, frameworks, metadata processing, and scalable application structure.

Java Language Features

  • Annotations appeared in JDK 5, adding a new capability in java language features.
  • Autoboxing / Unboxing appeared in JDK 5, adding a new capability in java language features.
  • Covariant Return Types appeared in JDK 5, adding a new capability in java language features.
  • Enhanced for-loop appeared in JDK 5, adding a new capability in java language features.

Tools & Tool APIs

  • jconsole appeared in JDK 5, adding a new capability in tools & tool apis.
  • jmap appeared in JDK 5, adding a new capability in tools & tool apis.
  • jps appeared in JDK 5, adding a new capability in tools & tool apis.
  • jstack appeared in JDK 5, adding a new capability in tools & tool apis.

lang and util Base Libraries

  • java.lang.StringBuilder appeared in JDK 5, adding a new capability in lang and util base libraries.
  • java.lang.instrument appeared in JDK 5, adding a new capability in lang and util base libraries.
  • java.util.Scanner appeared in JDK 5, adding a new capability in lang and util base libraries.
  • java.util.concurrent appeared in JDK 5, adding a new capability in lang and util base libraries.
Matrix slice

Quick comparison table: JDK 1.4 vs JDK 5

This side-by-side view turns the source evolution matrix into a faster way to see which language, tooling, runtime, and platform layers moved between these two releases.

Area Component JDK 1.4 JDK 5 Why it stands out
JVM: Execution Engine & GC CMS GC Not present NEW CMS GC appeared in JDK 5, adding a new capability in jvm: execution engine & gc.
Java Language Features Annotations Not present NEW Annotations appeared in JDK 5, adding a new capability in java language features.
Java Language Features Autoboxing / Unboxing Not present NEW Autoboxing / Unboxing appeared in JDK 5, adding a new capability in java language features.
Other Base Libraries Instrumentation API Not present NEW Instrumentation API appeared in JDK 5, adding a new capability in other base libraries.
Other Base Libraries java.util.concurrent Not present NEW java.util.concurrent appeared in JDK 5, adding a new capability in other base libraries.
Tools & Tool APIs jconsole Not present NEW jconsole appeared in JDK 5, adding a new capability in tools & tool apis.
Tools & Tool APIs jmap Not present NEW jmap appeared in JDK 5, adding a new capability in tools & tool apis.
lang and util Base Libraries java.lang.StringBuilder Not present NEW java.lang.StringBuilder appeared in JDK 5, adding a new capability in lang and util base libraries.
lang and util Base Libraries java.lang.instrument Not present NEW java.lang.instrument appeared in JDK 5, adding a new capability in lang and util base libraries.
JVM: Execution Engine & GC HotSpot JIT (C1+C2) Not present UPD HotSpot JIT (C1+C2) was updated in JDK 5, showing active movement in jvm: execution engine & gc.
User Interface Toolkits Swing UPD UPD Swing was updated in JDK 5, showing active movement in user interface toolkits.
Deployment Java Web Start UPD Present Java Web Start moved from active change in JDK 1.4 into a more stable baseline by JDK 5.
Integration Libraries JDBC 3.0 UPD Present JDBC 3.0 moved from active change in JDK 1.4 into a more stable baseline by JDK 5.
Integration Libraries XML / JAXP NEW Present XML / JAXP carried forward from JDK 1.4 and settled into the baseline by JDK 5.
Structured comparison

Grouped reading of the release shift

Generics change Java type safety permanently. java.util.concurrent revolutionises threading.

Java Language Features
New in JDK 5
  • Annotations
  • Autoboxing / Unboxing
  • Covariant Return Types
  • Enhanced for-loop
  • Enums
Updated by JDK 5
  • Steady platform carry-forward in JDK 5
Tools & Tool APIs
New in JDK 5
  • jconsole
  • jmap
  • jps
  • jstack
  • jstat
Updated by JDK 5
  • JPDA Debugger
lang and util Base Libraries
New in JDK 5
  • java.lang.StringBuilder
  • java.lang.instrument
  • java.util.Scanner
  • java.util.concurrent
  • java.nio
Updated by JDK 5
  • java.lang (Generics)
  • java.util (Generics)
  • javax.swing
  • java.net
  • java.security
Historical platform profile

Release narrative

Biggest language overhaul since 1.0. Generics, Annotations, Enums, Autoboxing, Varargs, Enhanced-for, Static Imports, java.util.concurrent. ~3500 classes.

Generics change Java type safety permanently. java.util.concurrent revolutionises threading.

GenericsAnnotationsEnumsAutoboxingjava.util.concurrentJConsole
Why it mattered later

Why JDK 5 matters in the JDK timeline

This release is best understood as a turning point in how developers thought about the Java platform, not just as a routine toolkit increment.

  • JDK 5 sits in the timeline as a major shift, which shaped how teams evaluated and adopted it.
  • It is commonly remembered for Generics, Annotations, Enums.
  • Compared with JDK 1.4, it gives a clearer picture of how the JDK platform was evolving release by release.
  • Generics change Java type safety permanently. java.util.concurrent revolutionises threading.
Related pages

Continue through the platform story