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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李方哲 黑马帝   /  2011-8-30 17:15  /  1830 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

具体的对象对应类在内存中的字节码,一个类被一个类加载器加载到内存中,占用一片存储空间,这个空间里的内容就是类的字节码,不同的类字节码是不同的,所以它们在内存中的内容是不同的,这一个个的空间可分别用一个个的对象来表示,这些对象具有相同的类型,那么请问这个类型就是Class对么,?

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

3 个回复

倒序浏览
黑马网友  发表于 2011-8-30 17:43:09
沙发
是啊,张老师的视频跟ppt里面有讲到过
回复 使用道具 举报
黑马网友  发表于 2011-8-30 18:12:49
藤椅
每一个对象在内存(栈内存)中的引用是不同的,在对象实例化的过程中,先在栈内存中开辟一块区域,用于存储指向堆内存的引用,具体的实例是分配在堆内存中的。以 Person p = new Person(); 为例,先在栈内存中分配一块区域p,在堆内存中分配一块区域,该区域包括Person类的成员变量,p中存储的是指向这块堆内存的引用。


:)  :)  希望能帮到你。。。
回复 使用道具 举报
恩,你的理解基本上是正确的
它们都是java.lang.Class这个类的对象
这些对象的作用是:用来描述一个类的信息

打个比方
这些对象就好比动物园中每种动物的说明牌
当你在动物园中见到了狼,但却不知道这是什么动物的时候
你就需要去阅读说明牌,来了解狼这个类的信息
当你读过说明牌之后,以后你就可以直接认识狼这个类了
所以说,每一块说明牌就是用来描述一个动物类的信息的对象
并且,不管是用于描述什么动物的说明牌,都是属于牌子类的对象

把比喻套用到JAVA上来,就是(注意下面每句话和比喻中每句话的对应)
当虚拟机需要使用Wolf类,但却不知道Wolf类的信息的时候
虚拟机就需要加载用于描述Wolf类的对象,来获取Wolf类中的信息
当虚拟机加载过这个对象之后,以后虚拟机就可以直接使用Wolf类了
所以说,虚拟机加载的这个对象就是用来描述Wolf类的信息的对象
并且,不管是用于描述什么类的这些对象,都是属于java.lang.Class类的对象
[ 本帖最后由 李叶 于 2011-08-30  21:22 编辑 ]

评分

参与人数 1技术分 +2 收起 理由
wangfayin + 2 回答的不错!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马