回头浪子心 发表于 2014-8-9 23:38
呵呵。。。其实很简单的好不
Bule丶 发表于 2014-8-9 23:16
原来如此,竟然是s1在内存的值因为两个对象指向了同一块空间,而mian方法里被断掉了,竟然是这样 ...
烟海 发表于 2014-8-9 23:47
是的。。所以我想了N久。。。都没想明白。。特地去问了老师。。。
绕了好久,才搞明白。。。这题是值得好 ...
烟海 发表于 2014-8-9 23:47
是的。。所以我想了N久。。。都没想明白。。特地去问了老师。。。
绕了好久,才搞明白。。。这题是值得好 ...
fantacyleo 发表于 2014-8-9 23:56
遇到这种题,牢记Java的参数是值传递,然后画内存图
fantacyleo 发表于 2014-8-10 00:25
嗯,分析是对的。有两处小细节:
1. StringBuffer是在常量池中,这个说法有依据吗?
2. “s2=s1 这一步,不 ...
彬锐 发表于 2014-8-10 00:07
有点晕晕乎乎的。。总是理所当然的纯粹只看里面的值了 然后进行互相添加
哎,看了这个感觉自己基础还是不行 ...
烟海 发表于 2014-8-10 01:05
1.StringBuffer中的值,就是一个个char类型的字符,确实都是在常量池中的,StringBuffer是拼起来的字符, ...
烟海 发表于 2014-8-10 01:07
理解基本对了一半。。。很不错了。。。。
仔细看看,还有一些细节的。。。 ...
fantacyleo 发表于 2014-8-10 01:38
1. StringBuffer内部有一个字符数组,而数组存在于堆内存中的。所以
张周飞 发表于 2014-8-10 10:08
骚年:我来学习来了.........
烟海 发表于 2014-8-10 23:30
哥们入学了吗?
我传智快结束了。。目前不知道能不能赶得上这一次43期呢。。。 ...
张周飞 发表于 2014-8-11 09:02
传智怎么样??怎么不上黑马视频辅导班呢?
nxp1986 发表于 2014-8-11 08:21
我也看看答案,其实第一道还是比较容易理解的,就是堆内存中相互赋值然后,s2=s1就是像楼上说的那么多一样 ...
StringBufferDemo3内存图.png (105.4 KB, 下载次数: 16)
根据楼主的 答案做的内存图
﹑淼 发表于 2014-8-11 14:54
希望没画错
kakasa 发表于 2014-8-11 14:12
这时候修改后的s2和传进来的s2已经失去了联系
为什么失去联系? 这个求解释一下。 ...
烟海 发表于 2014-8-11 12:35
当时想上7.5号的视频培训班的。。结果我报名的时候已经满了。。。
然后没办法,想想自学的进度太慢,就 ...
张周飞 发表于 2014-8-11 16:00
看你这架势 一定能上!!!每天去教堂给你祈祷 愿上帝与你同在 愿你能上.... ...
beyondjia 发表于 2014-8-11 16:09
看完之后觉得。。。我还是要继续学习。。。
想做开发 发表于 2014-8-11 17:02
我表示不是很懂
烟海 发表于 2014-8-11 17:09
不是很懂。。就仔细看看。。。
怀念黑海岸 发表于 2014-8-11 18:59
额,我想知道问题是什么????是求打印结果吗??
烟海 发表于 2014-8-11 19:04
是的。。看看打印结果和你预想的是不是一样??
怀念黑海岸 发表于 2014-8-11 19:12
恩,和哦我想的结果是一样的。。呵呵,这儿我特别深究过的的,所以不是特别难。 ...
烟海 发表于 2014-8-11 15:49
因为是StringBuffer,在常量池中。。。。把s1的值赋给s2, 而且String类型的值,一旦被初始化,就不能被 ...
kakasa 发表于 2014-8-11 19:59
好像有点明白了,其实主要原因还是因为单独封装了show方法的原因吧,因为show方法会在栈内存另外生成Stri ...
烟海 发表于 2014-8-11 21:49
跟StringBuffer 和append都有关系的。。。。
仔细看看吧 。。。
kakasa 发表于 2014-8-11 22:37
好吧,算了还是不懂。。。
x=y 就是直接赋值了把?结果是22 12 ,为什么?
烟海 发表于 2014-8-12 21:34
因为是void类型。。。没有return值。。所以show方法里面的。。在值上面。。和外面没有关系。。。 ...
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |