黑马程序员技术交流社区

标题: 问一个略深的问题? [打印本页]

作者: waylent    时间: 2015-4-13 11:54
标题: 问一个略深的问题?
反射的原理是什么?
(不是说反射API怎么用,而是反射API访问了内存中的什么对象的什么成员,这个对象又是从哪里来的?)
(还是说反射API是直接访问的方法区,直接就读出来了?)
(反射和累加器有什么关系?)
作者: fantacyleo    时间: 2015-4-13 13:13
反射api访问的是字节码对象(Class类的实例)。这对象是类被加载时由类加载器创建的。类的加载就是把class文件中的内容进行解析并把相关信息存在方法区。class文件中包含了成员变量、方法、构造函数的信息,所以你拿到Class类的对象也就能够访问到成员变量、方法、构造函数了
作者: sisel    时间: 2015-4-13 16:19
反射的原理是RTTI,运行时类型识别,通过JVMapi来运行时获取类的信息,组装实例或进行修改,java1.5的Instrumentation甚至可以运行时修改类的实现(即bytecode)




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2