Java反射
Java的反射机制是在编译并不确定是哪个类被加载了,而是在程序运行的时候才加载、探知、自审,使用在编译期并不知道的类。这样的特点就是反射。
Java的反射就是利用加载到JVM中的.class文件来进行操作的。.class文件中包含Java类的所有信息,当你不知道某个类具体信息时,可以使用反射获取Class,然后进行各种操作。反射就是把Java类中的各种成分映射成一个个的Java对象,并且可以进行操作。
反射提供的主要功能:
- 在运行时判断任意一个对象所属的类
- 在运行时构造任意一个类的对象
- 在运行时判断任意一个类所具有的成员变量和方法
- 在运行时调用任意一个对象的方法
RTTI
RTTI(RunTime Type Information),所有的类型信息都必须在编译时已知。会在所有类第一次使用的时候,将class对象(保存在.class文件)动态加载到JVM。
RTTI与反射区别:
- 编译器在编译时打开和检查.class文件
- 运行时打开和检查.class文件