黑马程序员技术交流社区

标题: 得到各个字节码对应的实例对象 [打印本页]

作者: whocases    时间: 2012-6-22 17:42
标题: 得到各个字节码对应的实例对象
本帖最后由 whocases 于 2012-6-24 21:48 编辑

得到各个字节码对应的实例对象可以通过类名.class;对象.getClass();Class.forName("类名")三种方法,那么这三种方法有什么区别呢?
作者: 燃烧端午    时间: 2012-6-22 17:49
Class clazz=A.class; JVM使用类A的类装载器,将类A装入内存(前提是:类A还没有装入内存),不对类A做类的初始化工作.返回类A的Class的对象

Class clazz=对象引用obj.getClass();返回引用obj运行时真正所指的对象所属的类的Class的对象  

Class.forName("类名");将类A装入内存 ,并做类的初始化


作者: 吴超    时间: 2012-6-22 21:33

Object getClass();

获取Class对象的方式一:
Person p=new Person();
p.getClass();

获取Class对象方式二:
每一个类型都具备一个class静态属性
通过该属性即可获取该类的字节码文件对象
比第一种简单了一些,仅用一个静态属性就搞定了
但是,还是有一点不方便,还必须要使用到该类

Class clazz=Person.class;


获取Class对象方式三:
去找Class类中是否有提供对应的获取方法呢?
找到了,forName   返回class
Class clazz=Class.forName("cn.itcast.bean.Person");//必须明确全类名,包名。类名
forName的作用
        返回字节码:返回范式1.这份字节码曾经在加载过,已在jvm中,直接返回
        jvm还没有这份字节码,则用类加载,把字节码加载




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