Java / Intermediate
Java β Intermediate
Build type-safe data transformations and reliable boundaries for failure, resources, tests, and deployment.
What you will learn
- Choose collections and generic APIs deliberately.
- Protect resource lifecycle and verify packaged behavior.
Collections, equality, and ownership
Choose list, set, and map behavior from the query contract. Reason about ordering, duplicate keys, mutable elements, and safe iteration.
Start learningGenerics, lambdas, and stream pipelines
Express type-safe reusable operations and data transformations without raw types, hidden side effects, or assumptions about pipeline execution.
Start learningExceptions, resource ownership, and absence
Design failure paths that preserve meaning and cleanup. Distinguish checked failures, programming defects, missing results, and resource lifecycle.
Start learningI/O, paths, charsets, and time
Build explicit boundaries between bytes, text, files, and temporal values. Reason about bounded input, resource ownership, and filesystem assumptions.
Start learningTests, contracts, and deterministic evidence
Test observable behavior with meaningful cases, explicit failure assertions, and controlled time rather than implementation-shaped checks or timing guesses.
Start learningPackages, classpath, and modules
Understand how source organization, binary names, dependency resolution, and encapsulation affect a packaged Java application.
Start learning