黑马程序员技术交流社区

标题: 反射出来的实例对象 [打印本页]

作者: 孙宁洋    时间: 2013-6-1 11:40
标题: 反射出来的实例对象
该如何理解Class类实例出来的对象在内存中的存在状态呢?和直接new一个类的对象有和不同
作者: 石贤芝    时间: 2013-6-1 14:53
本帖最后由 石贤芝 于 2013-6-1 14:58 编辑

//早期:new时候,先根据被new的类的名称找寻该类的字节码文件,并加载进内存,
//         并创建该字节码文件对象(即Class),并接着创建该字节码文件对应的Person 对象。
cn.itcast.bean.Person p = new cn.itcast.bean.Person();
               
//现在用反射的时候:
String name = "cn.itcast.bean.Person";
//找寻该名称类的字节码文件,并加载进内存,并产生Class对象。
Class clazz = Class.forName(name);
//创建 Person 对象
Object obj  = clazz.newInstance();

也就是说,第一句代码 和 后三句代码的功能是一样的,等价的。 原来一句代码能搞定的事情,在反射的时候要用这三句代码组合才可以搞定。
作者: 殇_心。    时间: 2013-6-1 18:01
如果问题已解决,请及时修改分类,否则继续提问,谢谢合作!




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