1.Java的反射是什么?
- 反射是一切Java开源框架设计的灵魂!
- 反射就是动态的加载对象,并对对象进行剖析!在运行状态下,对于任何一个类,都能够通过反射知道这个类的所有方法和属性
2.Java的反射机制?
- 动态的获取信息以及动态的调用方法的功能称为Java的反射机制。
3.获取Class的三种方式?
- 通过 对象.getClass() 的形式获取
- 通过 类名.class 的形式获取
- 通过 class.forName 的形式获取
- 以上三种获得Class 是同一个Class
4.反射的原理?
- 个人理解,反射的原理要从Java程序执行的过程来看。对于我们程序员来说,.java文件是我们可以阅读的,但是对于计算机来说 .class 是可以阅读的。所以,当我们编写
好 .java 文件之后,要通过 javac 命令,将 .java文件编译成 .class 文件,然后Java的虚拟机将 .class 文件加载到内存中,并产生 Class 对象 这个对象保存在内存的 堆区中,
然后我们可以通过上面介绍的三种获取 Class 对象的方式获取这个 Class ,只要我们拿到这个 Class 对象,我们就可以探索一切的未知类。 - 其中上面三种获取 Class 对象的方式还是有一点区别的,其中,如果 .class 字节码文件已经被加载到内存中后,我们才可以通过,对象.getClass() 和 类名.class 的形式获取
Class 对象,如果没有,我们就必须需要用 class.forName的形式,先把字节码文件加载到内存中,然后在获取 Class 对象。