java之RTTI和反射的理解
2016-04-23 18:16
148 查看
最近在读 Thinking in Java 这本书。读到类型信息这一张时,刚开始对书中所说的RTTI和反射彻底混了,不知道有什么联系,有哪些相同点和区别。于是在网上又找了些内容辅助理解,这一章又重新读了一遍,对上面的这些疑问有了自己的答案,想到RTTI和反射时,脑海中有了自己的轮廓。
它俩的目的一样:
在运行时,识别对象和类的信息。
相同点:
目的相同;
功能都是通过Class类来实现的
不同点:
RTTI:(主要作用在多态中,比如参数传递) 它假定我们在编译时已经知道所有类型,会打开和检查所有.class文件。比如:在多态参数传递中,会打开和检查基类及派生类。
反射: .class在编译时不可获取,所以是在 运行时打开和检查.class文件。
名词解释:
RTTI:Runtime Type Identification,运行时类型识别。
Class:类的类;类类型;class type;比如一个对象Dog dog ,[Dog.class,dog.getClass(),Class.forName(Dog)]都是Class类型的对象。作用:之一吧,对象的类型信息在运行时是如何表示的,是通过Class的特殊对象。
它俩的目的一样:
在运行时,识别对象和类的信息。
相同点:
目的相同;
功能都是通过Class类来实现的
不同点:
RTTI:(主要作用在多态中,比如参数传递) 它假定我们在编译时已经知道所有类型,会打开和检查所有.class文件。比如:在多态参数传递中,会打开和检查基类及派生类。
反射: .class在编译时不可获取,所以是在 运行时打开和检查.class文件。
名词解释:
RTTI:Runtime Type Identification,运行时类型识别。
Class:类的类;类类型;class type;比如一个对象Dog dog ,[Dog.class,dog.getClass(),Class.forName(Dog)]都是Class类型的对象。作用:之一吧,对象的类型信息在运行时是如何表示的,是通过Class的特殊对象。
相关文章推荐
- Struts2文件下载
- Java中常用的查找算法——顺序查找和二分查找
- 深入理解JAVA虚拟机(概念泛谈)
- Spring Mvc 如何配置 接收前台传来的时间变量
- eclipse安装问题之java was started but returned exit code=13和Version 1.6.0_65 of the JVM is not suitable f
- Java中定义类,对象,函数,变量的方法
- 从eclipse到android studio
- Eclipse中的java、xml代码提示功能设置
- Java中Synchronized的用法
- Java中的多线程
- java毕向东听课笔记23(集合框架-List集合具体对象)
- java类加载机制的代码实例
- java并发之ThreadLocal
- Spring Spel 与 Placeholder
- struts2命名空间与访问路径
- 我在网上收集的java相关资料
- java NIO-Channel
- [改善Java代码]在接口中不要存在实现代码
- Java中StringTokenizer用法
- eclipse 配置scala问题-More than one scala library found in the build path