Java / Intermediate

Java β€” Intermediate

Build type-safe data transformations and reliable boundaries for failure, resources, tests, and deployment.

6 lessons Β· No account required

What you will learn

  • Choose collections and generic APIs deliberately.
  • Protect resource lifecycle and verify packaged behavior.
  1. 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 learning
  2. Generics, lambdas, and stream pipelines

    Express type-safe reusable operations and data transformations without raw types, hidden side effects, or assumptions about pipeline execution.

    Start learning
  3. Exceptions, resource ownership, and absence

    Design failure paths that preserve meaning and cleanup. Distinguish checked failures, programming defects, missing results, and resource lifecycle.

    Start learning
  4. I/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 learning
  5. Tests, 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 learning
  6. Packages, classpath, and modules

    Understand how source organization, binary names, dependency resolution, and encapsulation affect a packaged Java application.

    Start learning
Back to course