Course
digicode: JAVA3A
Modern Java: Streams, Testing & Concurrency
Course facts
Download as PDF- Functional and efficient implementation of data processing using the Streams API
- Using collectors for grouping, statistics, and complex aggregations
- Writing professional unit tests with JUnit 5 and mocking dependencies with Mockito
- Applying the TDD (Test-Driven Development) approach and designing testable architectures
- Professionally managing build projects with Maven and managing dependencies
- Writing concurrent programs with ExecutorService and CompletableFuture
- Using AI tools for test generation, Streams optimization, and concurrency analysis
Day 1: Streams API and File I/O
Master the Streams API for functional data processing—from `filter`, `map`, and `sorted` to collectors (`groupingBy`, `partitioningBy`, `summarizing`) and `reduce` and `flatMap`. You’ll work with parallel streams and delve deeper into `Optional`. You’ll also learn File I/O with NIO.2 (`Path`, `Files.lines()`, `Files.walk()`).
Day 2: Testing and Code Quality
You’ll write professional unit tests with JUnit 5 (assertions, lifecycle, parameterized tests, nested tests). You’ll learn mocking with Mockito (stubs, mocks, spies, verify) and the TDD approach (Red-Green-Refactor). You’ll also cover logging with SLF4J/Logback and testable architecture.
Day 3: Build Management and Concurrency
You’ll manage projects professionally with Maven (pom.xml, dependencies, build lifecycle, plugins). You’ll also learn concurrent programming: threads, ExecutorService, CompletableFuture, and thread safety using `synchronized` and concurrent collections, and you’ll gain an overview of the Java Module System.
Throughout the course, you’ll use AI tools as professional resources—to generate and optimize Streams code, automatically create unit tests, and analyze concurrency issues.
The course combines theory and practice:
- Short theoretical sessions, live coding, and demos led by the instructor
- Numerous hands-on exercises with increasing levels of difficulty
- AI-supported exercises: generating tests, optimizing streams, analyzing concurrency issues
- Chapter exercises as practical mini-projects (log analyzer, testable library, concurrent word counter)
- Interactive training with time for questions and discussions
Prerequisites include a solid understanding of Java and OOP equivalent to the courses «Object-Oriented Programming in Java» and «Java Application Skills» or comparable knowledge: classes, inheritance, interfaces, generics, lambda expressions, collections (List, Set, Map), and functional interfaces.
All participants must have access to an AI text bot (e.g., ChatGPT, Claude, Copilot, or Perplexity).
Please create a free AI account (e.g., ChatGPT, Claude, Copilot, or Perplexity) before the course begins.