# openjdk/jdk architecture

> Architecture diagram of the GitHub repository openjdk/jdk, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-10-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/openjdk/jdk
- Repository: https://github.com/openjdk/jdk

## Overview

OpenJDK is the implementation of the Java Development Kit: its libraries and runtime support Java applications, from core data types and I/O to TLS. A representative user-to-result path is an application using Java APIs to manage data or process a stream; TLS provides a separate network-security capability. The README identifies the JDK but gives no runtime workflow details. Relationships below are limited to documented API behavior and source-index references; unsampled subsystems are not expanded into speculative call chains.

Main entry points: [`src/java.base/share/classes/javax/net/ssl/SSLEngine.java`](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/javax/net/ssl/SSLEngine.java) (SSLEngine API), [`src/java.base/share/classes/java/util/Collection.java`](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/Collection.java) (Collection API), [`src/java.base/share/classes/java/util/Objects.java`](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/Objects.java) (Object utilities), [`src/java.base/share/classes/java/util/List.java`](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/List.java) (List API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_core["Core runtime"]
  node_system["System services<br/>[System.java]"]
  node_exceptions["Exception types<br/>[Exception.java]"]
  node_io["File and object I/O<br/>[File.java]"]
  node_serializable["Serialization contract<br/>[Serializable.java]"]
end

subgraph group_collections["Collections and streams"]
  node_collection["Collection API<br/>[Collection.java]"]
  node_list["List API<br/>[List.java]"]
  node_arraylist["ArrayList<br/>[ArrayList.java]"]
  node_map["Map API<br/>[Map.java]"]
  node_hashmap["HashMap<br/>[HashMap.java]"]
  node_set["Set API<br/>[Set.java]"]
  node_comparator["Comparator API<br/>[Comparator.java]"]
  node_objects["Object utilities<br/>[Objects.java]"]
  node_optional["Optional values<br/>[Optional.java]"]
  node_spliterator["Spliterator API<br/>[Spliterator.java]"]
  node_stream["Stream API<br/>[Stream.java]"]
end

subgraph group_security["Secure networking"]
  node_sslapi["SSLEngine API<br/>[SSLEngine.java]"]
  node_sslimpl["TLS engine<br/>[SSLEngineImpl.java]"]
end

subgraph group_tools["JDK tools"]
  node_javacfiles["Compiler file manager"]
  node_filemanager["Compiler file API"]
end

node_application(("Java application"))

node_application -.->|"uses services"| node_system
node_application -.->|"uses collections"| node_collection
node_application -.->|"processes data"| node_stream
node_application -.->|"secures connections"| node_sslapi
node_list -.->|"extends contract"| node_collection
node_arraylist -->|"uses equality"| node_objects
node_map -.->|"uses utilities"| node_objects
node_sslimpl -->|"implements API"| node_sslapi
node_sslapi -->|"wraps and unwraps"| node_application
node_javacfiles -.->|"implements API"| node_filemanager

click node_system "https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/lang/System.java"
click node_exceptions "https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/lang/Exception.java"
click node_io "https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/io/File.java"
click node_serializable "https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/io/Serializable.java"
click node_collection "https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/Collection.java"
click node_list "https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/List.java"
click node_arraylist "https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/ArrayList.java"
click node_map "https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/Map.java"
click node_hashmap "https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/HashMap.java"
click node_set "https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/Set.java"
click node_comparator "https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/Comparator.java"
click node_objects "https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/Objects.java"
click node_optional "https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/Optional.java"
click node_spliterator "https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/Spliterator.java"
click node_stream "https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/stream/Stream.java"
click node_sslapi "https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/javax/net/ssl/SSLEngine.java"
click node_sslimpl "https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/sun/security/ssl/SSLEngineImpl.java"
click node_javacfiles "https://github.com/openjdk/jdk/blob/master/src/jdk.compiler/share/classes/com/sun/tools/javac/file/JavacFileManager.java"
click node_filemanager "https://github.com/openjdk/jdk/blob/master/src/java.compiler/share/classes/javax/tools/JavaFileManager.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_system,node_exceptions,node_io,node_serializable toneBlue
class node_collection,node_list,node_arraylist,node_map,node_hashmap,node_set,node_comparator,node_objects,node_optional,node_spliterator,node_stream toneAmber
class node_sslapi,node_sslimpl toneMint
class node_javacfiles,node_filemanager toneRose
class node_application toneIndigo
```

## Components

### Core runtime

- [System services](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/lang/System.java): `src/java.base/share/classes/java/lang/System.java`
- [Exception types](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/lang/Exception.java): `src/java.base/share/classes/java/lang/Exception.java`
- [File and object I/O](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/io/File.java): `src/java.base/share/classes/java/io/File.java`
- [Serialization contract](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/io/Serializable.java): `src/java.base/share/classes/java/io/Serializable.java`

### Collections and streams

- [Collection API](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/Collection.java): `src/java.base/share/classes/java/util/Collection.java`
- [List API](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/List.java): `src/java.base/share/classes/java/util/List.java`
- [ArrayList](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/ArrayList.java): `src/java.base/share/classes/java/util/ArrayList.java`
- [Map API](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/Map.java): `src/java.base/share/classes/java/util/Map.java`
- [HashMap](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/HashMap.java): `src/java.base/share/classes/java/util/HashMap.java`
- [Set API](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/Set.java): `src/java.base/share/classes/java/util/Set.java`
- [Comparator API](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/Comparator.java): `src/java.base/share/classes/java/util/Comparator.java`
- [Object utilities](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/Objects.java): `src/java.base/share/classes/java/util/Objects.java`
- [Optional values](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/Optional.java): `src/java.base/share/classes/java/util/Optional.java`
- [Spliterator API](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/Spliterator.java): `src/java.base/share/classes/java/util/Spliterator.java`
- [Stream API](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/stream/Stream.java): `src/java.base/share/classes/java/util/stream/Stream.java`

### Secure networking

- [SSLEngine API](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/javax/net/ssl/SSLEngine.java): `src/java.base/share/classes/javax/net/ssl/SSLEngine.java`
- [TLS engine](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/sun/security/ssl/SSLEngineImpl.java): `src/java.base/share/classes/sun/security/ssl/SSLEngineImpl.java`

### JDK tools

- [Compiler file manager](https://github.com/openjdk/jdk/blob/master/src/jdk.compiler/share/classes/com/sun/tools/javac/file/JavacFileManager.java): `src/jdk.compiler/share/classes/com/sun/tools/javac/file/JavacFileManager.java`
- [Compiler file API](https://github.com/openjdk/jdk/blob/master/src/java.compiler/share/classes/javax/tools/JavaFileManager.java): `src/java.compiler/share/classes/javax/tools/JavaFileManager.java`

### Other components

- **Java application**

## Connections

- Java application → System services: uses services
- Java application → Collection API: uses collections
- Java application → Stream API: processes data
- Java application → SSLEngine API: secures connections
- List API → Collection API: extends contract (evidence: `src/java.base/share/classes/java/util/List.java`)
- ArrayList → Object utilities: uses equality (evidence: `src/java.base/share/classes/java/util/ArrayList.java`)
- Map API → Object utilities: uses utilities (evidence: `src/java.base/share/classes/java/util/Map.java`)
- TLS engine → SSLEngine API: implements API (evidence: `src/java.base/share/classes/sun/security/ssl/SSLEngineImpl.java`)
- SSLEngine API → Java application: wraps and unwraps (evidence: `src/java.base/share/classes/javax/net/ssl/SSLEngine.java`)
- Compiler file manager → Compiler file API: implements API
