Reflection is a feature in Java that allows your code to inspect and manipulate classes, methods, fields, and constructors at runtime — even if you don’t know their names at compile time.