Advanced Projects
Prerequisites: Level 3 — Advanced
Build these using streams, concurrency, and the JVM/deployment knowledge from Level 3.
1. Multi-Threaded Word Counter
Given a folder of text files, use an ExecutorService to count word
frequencies across all files in parallel (one Future per file), then
merge the per-file results into a single combined count.
2. Plain-Java REST API
Using com.sun.net.httpserver.HttpServer (built into the JDK, no
framework) or Spring Boot, build a small "task list" API with GET/POST/
DELETE endpoints backed by an in-memory Map, then swap the in-memory
store for real JDBC + SQLite persistence.
3. Library System with a Real Database
Rebuild the Level 2 Library Management System backed by JDBC and SQLite
instead of in-memory collections. Add JUnit tests using a mock
Connection/PreparedStatement (or a real in-memory test database) so
the test suite doesn't depend on a shared file.