Intermediate Java
Collections, concurrency, files and a guided application project
Strengthen Java programming through data handling, generics, streams, threads, exceptions and one guided application project.
Why this course
This three-day course is for participants who can already write, build and debug Java programs. It develops data conversion, collection processing, object-oriented design, concurrency and file-handling skills through small exercises.
A guided project brings together selected file and database operations, with an introductory web-facing example and assessment. Memory management and web development are covered at appropriate intermediate depth; the course does not claim complete JVM expertise or production deployment readiness.
Learning outcomes
The course teaches participants to:
- Explain object/reference lifetime and the role of garbage collection at introductory JVM level.
- Use control flow and bounded recursion for suitable data-conversion tasks.
- Work with collections, generics, lambdas and streams.
- Identify synchronisation and exception-handling issues in a small threaded example.
- Use Java file APIs with appropriate resource and error handling.
- Apply selected database operations in a prepared project.
- Review an introductory web-facing application and test its behaviour.
Prerequisites
- Ability to write Java programs and use a Java IDE.
- Familiarity with compiling, running, debugging and testing a Java project.
- Basic understanding of the software-development workflow; no claim to know its entire lifecycle is required.
- A prepared compatible JDK, IDE, project and disposable database for the selected exercises.
3 modules
01Day 1 — OOP and Data Processing7 topics
- Revision of OOP
- Loops
- Conditions
- Recursion: base cases, depth limits and situations where iteration is preferable.
- Data conversion, including a bounded nested-data example.
- Primitive and object data handling with explicit conversion checks.
- Validate and clean a small prepared dataset.
Review object/reference lifetime and garbage-collection concepts in the context of the small examples.
02Day 2 — Collections and Concurrency9 topics
- Collections
- Compare lists and arrays, mutability and access patterns.
- Generics
- Lambdas and functional interfaces for small tasks.
- Stream processing and its limitations; do not assume parallel operations improve performance.
- Threads
- Multi-threaded programming
- Synchronisation and shared-state risks in a small example.
- Executor/task utilities appropriate to the selected JDK.
03Day 3 — Errors, Files and Application Project4 topics
- Exception Handling
- Error Handling
- Exception propagation and failure handling in multithreaded examples.
- File and directory operations using java.nio.file and related I/O APIs; resource handling and filesystem-specific behaviour.
Guided Project
Extend one prepared application with file processing and selected database operations using sample data; handle resources and errors.
Java for the Web
Review a small web-facing example and connect it to the project where time permits; avoid building a full web framework from scratch.
Assessment
Review the project’s behaviour, explain selected design choices and diagnose a small prepared fault.
A programme built around your team.
Share your training goals and requirements.