advanced.java
29 concepts · 60 questions

The parts of Java that behave differently from how they read.

Erasure, initialisation order, overload resolution, the memory model. Read the concept, then prove you have it — and run the code yourself when the answer surprises you.

Object lifecycle

Object methods

General guidelines

Class design

Generics

Enums and annotations

Methods

Exceptions

Concurrency

Serialization

Reflection

Dynamic languages

Compiler tooling

Instrumentation