A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 孙宁洋 中级黑马   /  2013-6-1 11:40  /  1631 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

该如何理解Class类实例出来的对象在内存中的存在状态呢?和直接new一个类的对象有和不同

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

3 个回复

倒序浏览
本帖最后由 石贤芝 于 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();

也就是说,第一句代码 和 后三句代码的功能是一样的,等价的。 原来一句代码能搞定的事情,在反射的时候要用这三句代码组合才可以搞定。

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

回复 使用道具 举报
如果问题已解决,请及时修改分类,否则继续提问,谢谢合作!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马