黑马程序员技术交流社区
标题:
关于字节码
[打印本页]
作者:
李方哲
时间:
2011-8-30 17:15
标题:
关于字节码
具体的对象对应类在内存中的字节码,一个类被一个类加载器加载到内存中,占用一片存储空间,这个空间里的内容就是类的字节码,不同的类字节码是不同的,所以它们在内存中的内容是不同的,这一个个的空间可分别用一个个的对象来表示,这些对象具有相同的类型,那么请问这个类型就是Class对么,?
作者:
匿名
时间:
2011-8-30 17:43
是啊,张老师的视频跟ppt里面有讲到过
作者:
匿名
时间:
2011-8-30 18:12
每一个对象在内存(栈内存)中的引用是不同的,在对象实例化的过程中,先在栈内存中开辟一块区域,用于存储指向堆内存的引用,具体的实例是分配在堆内存中的。以 Person p = new Person(); 为例,先在栈内存中分配一块区域p,在堆内存中分配一块区域,该区域包括Person类的成员变量,p中存储的是指向这块堆内存的引用。
:) :) 希望能帮到你。。。
作者:
李叶
时间:
2011-8-30 21:18
恩,你的理解基本上是正确的
它们都是java.lang.Class这个类的对象
这些对象的作用是:用来描述一个类的信息
打个比方
这些对象就好比动物园中每种动物的说明牌
当你在动物园中见到了狼,但却不知道这是什么动物的时候
你就需要去阅读说明牌,来了解狼这个类的信息
当你读过说明牌之后,以后你就可以直接认识狼这个类了
所以说,每一块说明牌就是用来描述一个动物类的信息的对象
并且,不管是用于描述什么动物的说明牌,都是属于牌子类的对象
把比喻套用到JAVA上来,就是(注意下面每句话和比喻中每句话的对应)
当虚拟机需要使用Wolf类,但却不知道Wolf类的信息的时候
虚拟机就需要加载用于描述Wolf类的对象,来获取Wolf类中的信息
当虚拟机加载过这个对象之后,以后虚拟机就可以直接使用Wolf类了
所以说,虚拟机加载的这个对象就是用来描述Wolf类的信息的对象
并且,不管是用于描述什么类的这些对象,都是属于java.lang.Class类的对象
[
本帖最后由 李叶 于 2011-08-30 21:22 编辑
]
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2