黑马程序员技术交流社区

标题: person类的反射疑问 [打印本页]

作者: 黑马-李勇    时间: 2012-8-31 20:25
标题: person类的反射疑问
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                person p=new person();
                Class classz=p.getClass();
                person p1=new person();
                Class classz1=p1.getClass();
               
        
                System.out.println(p==p1);
        System.out.println(classz==classz1);
//结果是
false
true
是否可以理解为person的字节码是一个?所以classz==classz1
作者: 朱云坤    时间: 2012-8-31 20:35
标题: 补充一下:getClass()方法返回的是此对象运行时类的Class对象
本帖最后由 朱云坤 于 2012-8-31 20:40 编辑

类在第一次被调用的时候被类加载器加载,被编译成一个字节码文件,两次调用生成了两个不同的对象,但是它们使用的都是同一个字节码文件。

作者: 武庆东    时间: 2012-8-31 23:44
Person类进行编译时生成.class后缀的字节码! p.getClass()和p1.getClass()得到同样Person类的字节码!new Person()其实就是类的对象,每次new 都是在堆内存中开辟内存空间存储对象名字,并开辟相应的栈内存保存对象的属性和方法!




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