Skip to content

Java

This section covers the Java topics most relevant to Android and JVM development: object semantics, collections, generics, exceptions, concurrency, and the Android runtime toolchain.

For a practical learning path, start with the language and standard-library fundamentals. Continue with exception handling and concurrency, then study how Java and Kotlin code is compiled, optimized, and executed on Android.

Language foundations

  • Java Core - Object contracts, equality, collections, generics, boxing, access control, casts, and singleton lifetime.
  • Java Exceptions - checked and unchecked exceptions, propagation, resource cleanup, cause preservation, Kotlin interoperability, and Android failure boundaries.

Concurrency

  • Java Concurrency - the Java Memory Model, visibility, monitors, interruption, executors, futures, atomic operations, and concurrent collections.

JVM and Android runtime

  • JVM / Android Runtime - the JVM-to-DEX pipeline, D8 and R8, desugaring, ART execution, Baseline Profiles, Zygote, processes, and managed memory.