Reflection: Reflection is a process by which software analyzes itself. By reflection abilities of a software component can be checked at run time.
Classes defined by java.lang.reflect:
Array: For creating and manipulating arrays dynamically.
Constructor: For information about a constructor.
Field: For information about a field.
Method: For information about a method.
Modifier: For information about class and member access modifiers.
AccessibleObject: To bypass the default access control checks.
Proxy: For dynamic proxy classes.
ReflectPermission: For reflection of private and protected members of a class.