Well, before taking in-deep look at reflection, please keep in mind that if it is imposible to use other method for operation, we should use this way rather than the reflection.
So, what is reflection? In the computer sience, reflection is the feature allows programs examine or modify runtime behaviour and structure of programs in the JVM. In Java language, reflection allows programs discover informations about classes, fields, interfaces and methods of loaded classes, and use them without any security restrictions.
Here is a quick example to you how Java reflection works :