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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 黄鸿达 于 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类对象,他们的引用是谁?在内存怎么表示?

是像数组那样有角标索引,在里面引用这些对象吗?

6 个回复

倒序浏览
ArrayList里l里面存放的就是这几个对象的地址
回复 使用道具 举报
ArrayList底层是是数组结构,凡List集合中的元素都有索引,这四个对象被添加到ArrayList的集合中,实际上是这四个对象的地址值添加到了ArrayList中底层数组的相对应角标位上,ArrayList中的角标索引指向着这些对象,所以操作集合中的索引来就是在操作这几个对象。
回复 使用道具 举报

回复 使用道具 举报
其实你根本不用管ArrayList里是怎么存放它们的。我写了两个示例对象,在内存中就是这样存放的。
回复 使用道具 举报
好~了解~
回复 使用道具 举报
根据你的代码,我画了一个图

还有,下面两个帖子,是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
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马