Java的反射与RTTI(运行时类型信息)的区别
2015-07-27 23:29
387 查看
重要的事情说三遍:
反射并没有什么神奇之处!反射并没有什么神奇之处!反射并没有什么神奇之处!
当通过反射与一个未知类型的对象打交道时,JVM只是简单地检查这个对象,看它属于哪个特定的类(和RTTI一样)。在用它做其他事情之前必须先加载那个类的class对象。
那个类的class文件要么存在于本地,要么在网络上。
仅此而已。
反射在运行时打开和检查class文件。
反射并没有什么神奇之处!反射并没有什么神奇之处!反射并没有什么神奇之处!
当通过反射与一个未知类型的对象打交道时,JVM只是简单地检查这个对象,看它属于哪个特定的类(和RTTI一样)。在用它做其他事情之前必须先加载那个类的class对象。
那个类的class文件要么存在于本地,要么在网络上。
仅此而已。
反射和RTTI的区别就是何时获得和打开class文件。
RTTI在编译时打开和检查class文件。(换句话说,我们以普通的方式调用对象的方法)反射在运行时打开和检查class文件。
相关文章推荐
- 多态学习日志
- int&boolean——Java和C的一点小区别
- Eclipse报Caused by: java.lang.OutOfMemoryError: PermGen space解决思路
- [黑马程序员](第16天)eclipse及知识点补充
- Spring @Autowired注解
- Java内部类——成员内部类
- mac 下android开发 eclipse中找不到设备
- Spring IOC装配Bean的3种方式
- 用Eclipse和GDB构建ARM交叉编译和在线调试环境
- 使用eclipse搭建嵌入式开发环境
- Eclipse ARM IDE 开发环境
- 【深入Java虚拟机】之七:Javac编译与JIT编译
- Ubuntu 12.04 下安装 Eclipse
- Eclipse无法设置NDK路径的解决方法
- 解码OutOfMemoryError:PermGen Space
- Eclipse 快捷键
- Java用DOM操作xml
- 如何在Ubuntu 14.04中安装最新版Eclipse
- String.intern()
- JAVA多线程常见问题。