# crossoverjie/jcsprout architecture

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

- Interactive diagram: https://gitdiagram.com/crossoverjie/jcsprout
- Repository: https://github.com/crossoverjie/jcsprout

## Overview

JCSprout is a Java core-knowledge repository of runnable examples, not one application with a shared runtime workflow. The principal workflow is to choose a topic, run a demonstration, and inspect its behavior. The graph groups representative algorithm, concurrency, JVM, and framework examples; the README also covers topics without corresponding source directories in this tree, so those are not mapped as implemented subsystems. Relationships reflect sampled source where available; other examples are shown as independent demonstrations.

Main entry points: [`src/main/java/com/crossoverjie/design/pattern/chainofresponsibility/Main.java`](https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/design/pattern/chainofresponsibility/Main.java) (Message chain demo), [`src/main/java/com/crossoverjie/concurrent/CustomThreadPool.java`](https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/concurrent/CustomThreadPool.java) (Custom thread pool), [`src/main/java/com/crossoverjie/concurrent/future/FutureTask.java`](https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/concurrent/future/FutureTask.java) (Future task), [`src/main/java/com/crossoverjie/classloader/Main.java`](https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/classloader/Main.java) (Classloader demo)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_algorithms["Algorithms"]
  node_redpacket["Red packet<br/>[RedPacket.java]"]
  node_list_sort["List merge sort"]
  node_word_search["Wildcard search<br/>[Search.java]"]
end

subgraph group_concurrency["Concurrency"]
  node_custom_pool["Custom thread pool"]
  node_future_task["Future task<br/>[FutureTask.java]"]
  node_callable["Callable<br/>[Callable.java]"]
  node_future["Future<br/>[Future.java]"]
  node_notify["Pool notification<br/>[Notify.java]"]
  node_array_queue["Array queue<br/>[ArrayQueue.java]"]
end

subgraph group_jvm["JVM Examples"]
  node_classloader_main["Classloader demo<br/>[Main.java]"]
  node_child_class["Child class<br/>[ChildClass.java]"]
  node_minor_gc["Minor GC demo<br/>[MinorGC.java]"]
  node_heap_oom["Heap OOM demo<br/>[HeapOOM.java]"]
end

subgraph group_frameworks["Framework Examples"]
  node_chain_main["Message chain demo<br/>[Main.java]"]
  node_chain["Message chain"]
  node_sensitive_process["Sensitive filter"]
  node_typo_process["Typo filter<br/>[TypoProcess.java]"]
  node_copyright_process["Copyright filter"]
  node_spring_app["Spring Boot entry<br/>[Application.java]"]
  node_spring_lifecycle["Lifecycle demo"]
  node_spring_service["Lifecycle service"]
end

node_engineer(("Engineer"))

node_engineer -->|"runs demo"| node_redpacket
node_engineer -->|"runs demo"| node_list_sort
node_engineer -->|"runs demo"| node_word_search
node_engineer -->|"runs demo"| node_custom_pool
node_engineer -->|"runs demo"| node_array_queue
node_engineer -->|"runs demo"| node_classloader_main
node_engineer -->|"runs demo"| node_minor_gc
node_engineer -->|"runs demo"| node_heap_oom
node_engineer -->|"runs demo"| node_chain_main
node_engineer -->|"runs app"| node_spring_app
node_custom_pool -->|"wraps callable"| node_future_task
node_future_task -->|"invokes"| node_callable
node_future_task -->|"implements"| node_future
node_custom_pool -->|"notifies via"| node_notify
node_classloader_main -->|"references"| node_child_class
node_chain_main -->|"builds and runs"| node_chain
node_chain_main -->|"adds to chain"| node_sensitive_process
node_chain_main -->|"adds to chain"| node_typo_process
node_chain_main -->|"adds to chain"| node_copyright_process

click node_redpacket "https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/red/RedPacket.java"
click node_list_sort "https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/algorithm/LinkedListMergeSort.java"
click node_word_search "https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/actual/Search.java"
click node_custom_pool "https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/concurrent/CustomThreadPool.java"
click node_future_task "https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/concurrent/future/FutureTask.java"
click node_callable "https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/concurrent/future/Callable.java"
click node_future "https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/concurrent/future/Future.java"
click node_notify "https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/concurrent/communication/Notify.java"
click node_array_queue "https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/concurrent/ArrayQueue.java"
click node_classloader_main "https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/classloader/Main.java"
click node_child_class "https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/classloader/ChildClass.java"
click node_minor_gc "https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/gc/MinorGC.java"
click node_heap_oom "https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/oom/heap/HeapOOM.java"
click node_chain_main "https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/design/pattern/chainofresponsibility/Main.java"
click node_chain "https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/design/pattern/chainofresponsibility/MsgProcessChain.java"
click node_sensitive_process "https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/design/pattern/chainofresponsibility/impl/SensitiveWordProcess.java"
click node_typo_process "https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/design/pattern/chainofresponsibility/impl/TypoProcess.java"
click node_copyright_process "https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/design/pattern/chainofresponsibility/impl/CopyrightProcess.java"
click node_spring_app "https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/Application.java"
click node_spring_lifecycle "https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/spring/SpringLifeCycle.java"
click node_spring_service "https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/spring/service/SpringLifeCycleService.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_redpacket,node_list_sort,node_word_search toneBlue
class node_custom_pool,node_future_task,node_callable,node_future,node_notify,node_array_queue toneAmber
class node_classloader_main,node_child_class,node_minor_gc,node_heap_oom toneMint
class node_chain_main,node_chain,node_sensitive_process,node_typo_process,node_copyright_process,node_spring_app,node_spring_lifecycle,node_spring_service toneRose
class node_engineer toneIndigo
```

## Components

### Algorithms

- [Red packet](https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/red/RedPacket.java): `src/main/java/com/crossoverjie/red/RedPacket.java`
- [List merge sort](https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/algorithm/LinkedListMergeSort.java): `src/main/java/com/crossoverjie/algorithm/LinkedListMergeSort.java`
- [Wildcard search](https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/actual/Search.java): `src/main/java/com/crossoverjie/actual/Search.java`

### Concurrency

- [Custom thread pool](https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/concurrent/CustomThreadPool.java): `src/main/java/com/crossoverjie/concurrent/CustomThreadPool.java`
- [Future task](https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/concurrent/future/FutureTask.java): `src/main/java/com/crossoverjie/concurrent/future/FutureTask.java`
- [Callable](https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/concurrent/future/Callable.java): `src/main/java/com/crossoverjie/concurrent/future/Callable.java`
- [Future](https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/concurrent/future/Future.java): `src/main/java/com/crossoverjie/concurrent/future/Future.java`
- [Pool notification](https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/concurrent/communication/Notify.java): `src/main/java/com/crossoverjie/concurrent/communication/Notify.java`
- [Array queue](https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/concurrent/ArrayQueue.java): `src/main/java/com/crossoverjie/concurrent/ArrayQueue.java`

### JVM Examples

- [Classloader demo](https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/classloader/Main.java): `src/main/java/com/crossoverjie/classloader/Main.java`
- [Child class](https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/classloader/ChildClass.java): `src/main/java/com/crossoverjie/classloader/ChildClass.java`
- [Minor GC demo](https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/gc/MinorGC.java): `src/main/java/com/crossoverjie/gc/MinorGC.java`
- [Heap OOM demo](https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/oom/heap/HeapOOM.java): `src/main/java/com/crossoverjie/oom/heap/HeapOOM.java`

### Framework Examples

- [Message chain demo](https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/design/pattern/chainofresponsibility/Main.java): `src/main/java/com/crossoverjie/design/pattern/chainofresponsibility/Main.java`
- [Message chain](https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/design/pattern/chainofresponsibility/MsgProcessChain.java): `src/main/java/com/crossoverjie/design/pattern/chainofresponsibility/MsgProcessChain.java`
- [Sensitive filter](https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/design/pattern/chainofresponsibility/impl/SensitiveWordProcess.java): `src/main/java/com/crossoverjie/design/pattern/chainofresponsibility/impl/SensitiveWordProcess.java`
- [Typo filter](https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/design/pattern/chainofresponsibility/impl/TypoProcess.java): `src/main/java/com/crossoverjie/design/pattern/chainofresponsibility/impl/TypoProcess.java`
- [Copyright filter](https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/design/pattern/chainofresponsibility/impl/CopyrightProcess.java): `src/main/java/com/crossoverjie/design/pattern/chainofresponsibility/impl/CopyrightProcess.java`
- [Spring Boot entry](https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/Application.java): `src/main/java/com/crossoverjie/Application.java`
- [Lifecycle demo](https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/spring/SpringLifeCycle.java): `src/main/java/com/crossoverjie/spring/SpringLifeCycle.java`
- [Lifecycle service](https://github.com/crossoverjie/jcsprout/blob/master/src/main/java/com/crossoverjie/spring/service/SpringLifeCycleService.java): `src/main/java/com/crossoverjie/spring/service/SpringLifeCycleService.java`

### Other components

- **Engineer**

## Connections

- Engineer → Red packet: runs demo
- Engineer → List merge sort: runs demo
- Engineer → Wildcard search: runs demo
- Engineer → Custom thread pool: runs demo
- Engineer → Array queue: runs demo
- Engineer → Classloader demo: runs demo
- Engineer → Minor GC demo: runs demo
- Engineer → Heap OOM demo: runs demo
- Engineer → Message chain demo: runs demo
- Engineer → Spring Boot entry: runs app
- Custom thread pool → Future task: wraps callable
- Future task → Callable: invokes
- Future task → Future: implements
- Custom thread pool → Pool notification: notifies via
- Classloader demo → Child class: references
- Message chain demo → Message chain: builds and runs
- Message chain demo → Sensitive filter: adds to chain
- Message chain demo → Typo filter: adds to chain
- Message chain demo → Copyright filter: adds to chain
