运行时类型信息
1.RTTI,它假设我们在编译时已经知道了所有的类型信息。使用rtti可以查询基类引用所指向的对象的确切类型
2.反射,它允许我们在运行时发现和使用类的信息
关于rtti
java文件被编译成class文件,类加载器将class文件动态加载到jvm中,一旦某个class文件被加载到内存,它就被用来创建这个类的所有对象。
class对象
可以使用类名.class获取该类的引用。
class引用表示的是它所指向的对象的确切类型。而该对象就是class类的一个对象。
反射
利用rtti识别类型有一个限制,就是这个类型在编译期间必须已知。
然而,反射提供了一种机制,即用来检查可用的方法,并返回方法名。
rtti和反射的区别:对于rtti编译器在编译时打开和检查.class文件;对于反射.class文件再编译时是不可获取的,它是再运行时打开和检查.class文件的