黑马程序员技术交流社区

标题: 他们的引用是谁?他们在内存中的表示是怎么样的 [打印本页]

作者: 黄鸿达    时间: 2013-2-5 13:20
标题: 他们的引用是谁?他们在内存中的表示是怎么样的
本帖最后由 黄鸿达 于 2013-2-5 14:14 编辑

比如 ArrayList al=new ArrayList()
al.add(new P());
al.add(new P());
al.add(new P());
al.add(new P());

有个类
class P{
String name;
}

我想问这4个在ArrayList里new 出来的P类对象,他们的引用是谁?在内存怎么表示?

是像数组那样有角标索引,在里面引用这些对象吗?
作者: 张庚    时间: 2013-2-5 13:46
ArrayList里l里面存放的就是这几个对象的地址
作者: 冯佩    时间: 2013-2-5 13:57
ArrayList底层是是数组结构,凡List集合中的元素都有索引,这四个对象被添加到ArrayList的集合中,实际上是这四个对象的地址值添加到了ArrayList中底层数组的相对应角标位上,ArrayList中的角标索引指向着这些对象,所以操作集合中的索引来就是在操作这几个对象。
作者: 陈科宇    时间: 2013-2-5 13:58


作者: 陈科宇    时间: 2013-2-5 13:59
其实你根本不用管ArrayList里是怎么存放它们的。我写了两个示例对象,在内存中就是这样存放的。
作者: 黄鸿达    时间: 2013-2-5 14:14
好~了解~
作者: 黄锦成    时间: 2013-2-6 15:56
根据你的代码,我画了一个图

还有,下面两个帖子,是9期的一个师兄写的,关于内存的,你好好学习。
http://bbs.itheima.com/thread-36998-1-1.html
http://bbs.itheima.com/thread-37276-1-1.html

test.PNG (35.52 KB, 下载次数: 35)

test.PNG





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