你的位置:首页 > Java教程

[Java教程]Java的反射与RTTI(运行时类型信息)的区别


重要的事情说三遍:

反射并没有什么神奇之处!反射并没有什么神奇之处!反射并没有什么神奇之处!


  • 当通过反射与一个未知类型的对象打交道时,JVM只是简单地检查这个对象,看它属于哪个特定的类(和RTTI一样)。在用它做其他事情之前必须先加载那个类的class对象。
  • 那个类的class文件要么存在于本地,要么在网络上。

仅此而已。

反射和RTTI的区别就是何时获得和打开class文件。

  • RTTI在编译时打开和检查class文件。(换句话说,我们以普通的方式调用对象的方法)
  • 反射在运行时打开和检查class文件。