什么是Java反射机制:
仅个人理解,如果有误,欢迎评论区指出QAQ
反射是基于java.lang.reflect的类库实现的,它是Java语言的一个特性。说反射就得先知道class类对象,每个Java类在运行是都会在jvm里表现为一个class对象,Class类是在java.lang包里,对于每个Java类来说都只有一个class描述对象,比如所有的二维数组不管你再怎么new它们都是共享同一个class对象。类在加载的时候主要有三个步骤:加载,链接,这个时候就会生成class对象,然后再初始化。说回来反射就是jvm在运行时,对于任意一个类,都能知道其所有属性和方法,对于任意一个对象都能调用其属性和方法,可以在运行的时候任意构造类对象,使得原来是静态语言的Java通过反射机制变成准动态语言,静态语言就是在编译时就得确定变量的数据类型,运行时不得改变结构的语言,动态语言则可以在运行时才确定数据类型,可以在运行时改变其结构的语言。反射其实也就将原先先导包在实例化对象最后获取该对象的步骤反过来,先实例化了对象,在通过getClass、class.forName和.class等方法获取Class对象。一句话总结就是:反射就是在运行时才知道要操作的类是什么,并且可以在运行时获取类的完整结构,并调用对应的方法。反射一般用于给运行着的服务器添加新的功能和各类框架上。