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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 戴振良   /  2013-1-24 14:37  /  6198 人查看  /  36 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

esirong 发表于 2013-1-24 16:53
1.ArrayList al = fun();//调用的方法返回一个引用地址,类型是一个集合。此条没有开避内存空间
//执行方 ...

//s指向堆中的“张三”(如果没有张三,就new张三再指向)。
//空间a1加入元素“张三”
//s重指向堆中“李四”(如果没有李四,就new李四再指向)。

s不是指向堆中的,而是常量池中的,要经过new的那些才在堆内存中。还有,画图时,尽量从栈指向堆,这样比较好看点,你画这个图看起来有点怪怪的。虽然说做人是要有自己的个性,但是要给别人看的东西,按照普遍的做法比较好
回复 使用道具 举报
刚睡醒,额,顺便把第二题做了,先感谢版主对我上面画的第一题指点,下面是第二题,有不对的地方还望指点


捕获0000.PNG (37.38 KB, 下载次数: 35)

捕获0000.PNG

评分

参与人数 2黑马币 +42 收起 理由
戴振良 + 30 赞一个!
黄锦成 + 12 good

查看全部评分

回复 使用道具 举报
张政 发表于 2013-1-24 20:21
疑惑的是不知道 第二个 person 类中的 name属性在堆中有没有单独的一块空间?
...

看明白你的图了。
我对你画的图给一些意见:第一张图:s是放在常量池中,最好画一个单独的区域,还有s=al.get(0)放在栈这边来;第二张:堆中的new Person 和 堆中的p相隔太远了些,要紧靠一起,更能说明他们之间的关系
回复 使用道具 举报
都是好厉害的啊
回复 使用道具 举报
梁俊 发表于 2013-1-24 20:59
都是高手啊

来画一下,这个是老毕基础面向对象内的知识。
回复 使用道具 举报
金鑫 发表于 2013-1-24 18:32
学长第一个内存分析图的例子也有一定迷惑性的,估计应该有人第一时间怀疑怎么会是null的吧 ...

仔细看了我们9期的群,是有个叫金兴,跟你同音,呵呵。
你说的迷惑性,或许是有的吧,因为我当时就是遇到了这个问题的,然后听说传基本类型的变量时,方法中是改变不了外面的变量,而传引用变量时,方法中是可以改变方法外的变量的,当时就觉得p是个引用变量啊,怎么没改变呢,后来想起老毕讲的画内存分析才知道了原因。
回复 使用道具 举报
画的有些乱,怕大家看不懂,添加了文字注解

内存图.JPG (53.39 KB, 下载次数: 39)

内存图

内存图

评分

参与人数 1黑马币 +30 收起 理由
戴振良 + 30 赞一个!

查看全部评分

回复 使用道具 举报
看了大家画的图,都有那么些意思了,不管对与不对,敢于动手画并贴上来的兄弟姐妹们,说明你们的上进心是很强的,善于分析,动手能力也强,学好Java不成问题。当然,我没仔细看,因为差不多都是一张图画出来,不容易看清楚思路,希望大家可以分步骤来截图,这样不会的人也可以很轻松的看懂,如果是一张图,我想时间自己久了,我估计自己看着也有点乱呢。
回复 使用道具 举报
IC-月辰 发表于 2013-1-25 06:05
刚睡醒,额,顺便把第二题做了,先感谢版主对我上面画的第一题指点,下面是第二题,有不对的地方还望指点

...

main中的al拉个箭头指向堆内存的0x0000,这样子更能一目了然了
回复 使用道具 举报
鲁柯 发表于 2013-1-25 10:55
画的有些乱,怕大家看不懂,添加了文字注解

就是d这一步骤注释有点小错误,其他都没问题。d那里你说:将s指向另一个字符串“李四”,则集合中的元素的元素s的指向跟着改变。我说一下我对这一步的理解:
al.add(s);是将s的引用放到集合中,后面的栈中的s指向“李四”,与集合中的没有任何关系了,此时集合中的第一个元素保存的还是“张三”的引用
回复 使用道具 举报
黄锦成 发表于 2013-1-24 23:24
点评有个数限制,直接回复了:第一个图画得可以,最好要分清两个方法中的al,第二个图中,Person在内存中 ...

谢谢了   我会改正的  谢谢 版主  和学长
回复 使用道具 举报
再来一道吧,练练手,大家指点指点

内存图00.JPG (56.4 KB, 下载次数: 35)

内存图00.JPG

评分

参与人数 2黑马币 +69 收起 理由
戴振良 + 60 赞一个!
黄锦成 + 9 great

查看全部评分

回复 使用道具 举报
哥们不是毕业了吗,还返回头看基础的?
回复 使用道具 举报
丁强强 发表于 2013-1-25 15:22
哥们不是毕业了吗,还返回头看基础的?

老毕的课讲的那么好,不看一下可惜了!
回复 使用道具 举报
第一道题的详细过程

评分

参与人数 1黑马币 +30 收起 理由
戴振良 + 30 赞一个!

查看全部评分

回复 使用道具 举报
杨剑 发表于 2013-2-1 11:49
第一道题的详细过程

看你理解的也差不多了,但感觉还没理解透,看:http://bbs.itheima.com/thread-37276-1-1.html,看第3楼第4楼是这道题的答案。
回复 使用道具 举报
支持学长!!!!
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马