NIO, Regex, Logging, JAXP, Preferences API, assert keyword, IPv6, Image I/O. First release under JCP (JSR-59). Chained Exceptions.
Why JDK 1.4 mattered
The release in context
NIO, Regex, Logging, JAXP, Preferences API, assert keyword, IPv6, Image I/O. First release under JCP (JSR-59). Chained Exceptions.
NIORegexLoggingJAXP (XML)Preferences APIJAAS
NIO, Regex, Logging, JAXP, Preferences API, assert keyword, IPv6, Image I/O. First release under JCP (JSR-59). Chained Exceptions.
Key release highlights included NIO, Regex, Logging, JAXP (XML).
Compared with JDK 1.3, the most visible shifts included XML / JAXP, Parallel GC, assert keyword.
~2700 classes. First JCP release. NIO changes Java I/O permanently.
The toolkit became more credible for large systems thanks to better I/O, diagnostics, and everyday runtime quality-of-life improvements.
Platform stack
JDK 1.4 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.
Scroll horizontally or vertically if needed. Press Escape or use Close to return to the page.
Previous-version diff
What changed from JDK 1.3 to JDK 1.4
The toolkit became more credible for large systems thanks to better I/O, diagnostics, and everyday runtime quality-of-life improvements.
Other Base Libraries
Chained Exceptions appeared in JDK 1.4, adding a new capability in other base libraries.
Logging (java.util.logging) appeared in JDK 1.4, adding a new capability in other base libraries.
NIO (New I/O) appeared in JDK 1.4, adding a new capability in other base libraries.
Preferences API appeared in JDK 1.4, adding a new capability in other base libraries.
lang and util Base Libraries
java.nio appeared in JDK 1.4, adding a new capability in lang and util base libraries.
java.util.logging appeared in JDK 1.4, adding a new capability in lang and util base libraries.
java.util.prefs appeared in JDK 1.4, adding a new capability in lang and util base libraries.
java.util.regex appeared in JDK 1.4, adding a new capability in lang and util base libraries.
User Interface Toolkits
Image I/O appeared in JDK 1.4, adding a new capability in user interface toolkits.
Java 2D was updated in JDK 1.4, showing active movement in user interface toolkits.
Swing was updated in JDK 1.4, showing active movement in user interface toolkits.
JavaSound carried forward from JDK 1.3 and settled into the baseline by JDK 1.4.
Matrix slice
Quick comparison table: JDK 1.3 vs JDK 1.4
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.3
JDK 1.4
Why it stands out
Integration Libraries
XML / JAXP
Not present
NEW
XML / JAXP appeared in JDK 1.4, adding a new capability in integration libraries.
JVM: Execution Engine & GC
Parallel GC
Not present
NEW
Parallel GC appeared in JDK 1.4, adding a new capability in jvm: execution engine & gc.
Java Language Features
assert keyword
Not present
NEW
assert keyword appeared in JDK 1.4, adding a new capability in java language features.
Other Base Libraries
Chained Exceptions
Not present
NEW
Chained Exceptions appeared in JDK 1.4, adding a new capability in other base libraries.
Other Base Libraries
Logging (java.util.logging)
Not present
NEW
Logging (java.util.logging) appeared in JDK 1.4, adding a new capability in other base libraries.
Tools & Tool APIs
xjc (JAXB)
Not present
NEW
xjc (JAXB) appeared in JDK 1.4, adding a new capability in tools & tool apis.
User Interface Toolkits
Image I/O
Not present
NEW
Image I/O appeared in JDK 1.4, adding a new capability in user interface toolkits.
lang and util Base Libraries
java.nio
Not present
NEW
java.nio appeared in JDK 1.4, adding a new capability in lang and util base libraries.
lang and util Base Libraries
java.util.logging
Not present
NEW
java.util.logging appeared in JDK 1.4, adding a new capability in lang and util base libraries.
Deployment
Java Web Start
Not present
UPD
Java Web Start was updated in JDK 1.4, showing active movement in deployment.
Integration Libraries
JDBC 3.0
Not present
UPD
JDBC 3.0 was updated in JDK 1.4, showing active movement in integration libraries.
User Interface Toolkits
Java 2D
Present
UPD
Java 2D was updated in JDK 1.4, showing active movement in user interface toolkits.
JVM: Execution Engine & GC
HotSpot JIT
Not present
Present
HotSpot JIT appeared in JDK 1.4, adding a new capability in jvm: execution engine & gc.
Deployment
Java Web Start (beta)
NEW
Present
Java Web Start (beta) carried forward from JDK 1.3 and settled into the baseline by JDK 1.4.
Structured comparison
Grouped reading of the release shift
~2700 classes. First JCP release. NIO changes Java I/O permanently.
Other Base Libraries
New in JDK 1.4
Chained Exceptions
Logging (java.util.logging)
NIO (New I/O)
Preferences API
Regular Expressions
Updated by JDK 1.4
Networking + IPv6
Security (JAAS/JSSE)
lang and util Base Libraries
New in JDK 1.4
java.nio
java.util.logging
java.util.prefs
java.util.regex
javax.xml
Updated by JDK 1.4
java.net
java.security
javax.naming
User Interface Toolkits
New in JDK 1.4
Image I/O
JavaSound
Print Service
Updated by JDK 1.4
Java 2D
Swing
Historical platform profile
Release narrative
NIO, Regex, Logging, JAXP, Preferences API, assert keyword, IPv6, Image I/O. First release under JCP (JSR-59). Chained Exceptions.
~2700 classes. First JCP release. NIO changes Java I/O permanently.
NIORegexLoggingJAXP (XML)Preferences APIJAAS
Why it mattered later
Why JDK 1.4 matters in the JDK timeline
This release fits into the steady JDK cadence where tooling, runtime behavior, and delivery capabilities evolve one step at a time.
JDK 1.4 sits in the timeline as a major milestone, which shaped how teams evaluated and adopted it.
It is commonly remembered for NIO, Regex, Logging.
Compared with JDK 1.3, it gives a clearer picture of how the JDK platform was evolving release by release.
~2700 classes. First JCP release. NIO changes Java I/O permanently.