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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马-李勇 中级黑马   /  2012-8-31 20:25  /  1386 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

        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

2 个回复

倒序浏览

补充一下:getClass()方法返回的是此对象运行时类的Class对象

本帖最后由 朱云坤 于 2012-8-31 20:40 编辑

类在第一次被调用的时候被类加载器加载,被编译成一个字节码文件,两次调用生成了两个不同的对象,但是它们使用的都是同一个字节码文件。
回复 使用道具 举报
Person类进行编译时生成.class后缀的字节码! p.getClass()和p1.getClass()得到同样Person类的字节码!new Person()其实就是类的对象,每次new 都是在堆内存中开辟内存空间存储对象名字,并开辟相应的栈内存保存对象的属性和方法!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马