RTTI、反射、动态代理部分知识总结
来源:互联网 发布:淘宝帐号永久冻结解封 编辑:程序博客网 时间:2024/06/07 18:18
RTTI与反射
背景:为什么会需要反射机制?
众所周知,RTTI(运行时类型识别),可以确切的告诉你某一个对象的确切类型,但有一个前提,这个确切类型必须在编译阶段是已知的。
即在编译时,编译器必须知道所有要通过RTTI处理的类,如果当前是处在一个分布式的环境中,某一台主机接收到了一段字节流信息,而这个字节流信息代表着的是一个确切类型的对象,此时本地没有对应该类型的.class文件,则RTTI无法有效识别该对象的确切类型。
因此引入了反射机制。反射机制可以在本地不存在.class文件的情况下,识别对象的确切类型,其中包括具体的对象信息,如属性(getFields())、方法(getMethods())、构造器(getConstructors())等。
当通过反射与一个未知类型的对象打交道时,JVM只是简单的检查这个对象,确认它属于哪个特定的类(就像RTTI那样)。在用它做其他事情之前,必须先加载那个类的Class对象。因此,那个类的.class文件对于JVM来说,必须是可以获取到的:要么来自本地,要么来自于网络。
所以RTTI与反射真正的区别在于:
- 对于RTTI来说,编译器在编译时打开和检查.class文件(换句话说,我们可以用“普通”方式调用对象的所有方法) - 对于反射机制来说,.class文件在编译阶段是不可获得的,所以是在运行阶段打开和检查.class文件(这种情况多数是因为该类的.class文件来自于网络)。
在远程方法调用(RMI)中、某些RPC框架中,反射机制最为常见,它允许将Java对象分布到多台机器上,提高系统的并行能力。反射机制应运而生。
(关键字:分布式系统、RPC、RMI)
动态代理
(待整理)
阅读全文
0 0
- RTTI、反射、动态代理部分知识总结
- 反射、泛型、动态代理总结[JAVA]
- JAVA 反射 总结 之 动态代理
- 代理,动态代理,反射
- 代理,动态代理,反射
- java知识总结(十)反射和代理
- 知识总结之 插件化基础 java反射与代理
- 反射与动态代理
- 反射动态代理
- 反射机制动态代理
- 反射、动态代理原理
- 动态代理反射
- 反射和动态代理
- 反射和动态代理
- 反射的动态代理
- Java 反射-动态代理
- 反射与动态代理
- 反射(6)--动态代理
- javaSE_8系列博客——Java语言的特性(四)--注解--(2)-- 声明一个注解
- 瑜伽微信微预约在微信公众平台怎么实现
- 静态链接库 & 动态链接库
- 洛谷OJ
- [ROR] 解决N+1问题的心得
- RTTI、反射、动态代理部分知识总结
- node.js结合mongoose对表单进行数据简单的增删改查
- 类和对象的初步接触
- 全新的PRT技术
- MySQL快速修改表结构,只针对更改varchar类型字段长度
- Netroid 无法导入 http.protocol.HTTP问题
- 【hibernate】hibernate配置及实例(sqlsever)
- 【PRO】- Runtime Resource Overlay
- java 锁优化