黑马程序员技术交流社区

标题: 反射的内存体现 [打印本页]

作者: 张邦庆    时间: 2011-10-31 11:24
标题: 反射的内存体现
反射是返回一份字节码,这份字节码必须已经存在了,如果我们的类没有编译,也就是不存在类的字节码,静态方法forName()反射时,就不能找到类的字节码,是不是这样呢?
作者: o火o把o    时间: 2011-10-31 11:45
应该是这样的~
就比如张老师高新技术视频里面反射的例子,如果我们把ReflectPoint的类删掉了,就不能进行反射了.

Class.forName()的作用:得到这个类的字节码,包含下面两种情况
.这个类的字节码已经加载到java虚拟机中,只需要找到返回.
.这个类的字节码在java虚拟机没找到,于是用类加载器加载,然后把类的字节码缓存起来再返回
作者: 罗亚东    时间: 2011-10-31 14:22
不是没有编译,就找不到类的字节码,而是类必须装载在虚拟机里,才能才能找到类的字节码进行反射。如果我们自定义的类就不能进行反射,即使编译器通过了也不行,我们必须用类装载器装载,才能找到类的字节码进行反射。




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