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 -
Objectcontracts, 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.