I am going through Java reflection drawbacks and came across below statement from Java docs:
Performance Overhead
Because reflection involves types that are dynamically resolved, certain Java virtual machine optimizations can not be performed. Consequently, reflective operations have slower performance than their non-reflective counterparts, and should be avoided in sections of code which are called frequently in performance-sensitive applications.
Please help me in understanding this. What it means that reflection involves types that are dynamically resolved? What are the optimizations provided by JVM in general?