java吧 关注:1,225,311贴子:12,684,054
  • 25回复贴,共1

字符串的 一个问题,求大神多参谋参谋

只看楼主收藏回复

public class MyClass {
static void aMethod(StringBuffer sf1, StringBuffer sf2) {
sf1.append(sf2);
sf2 = sf1;
}
public static void main(String[] args){
StringBuffer sf1 = new StringBuffer("A");
StringBuffer sf2 = new StringBuffer("B");
aMethod(sf1,sf2);
System.out .println(sf1+ ":"+sf2);
}
}
为什么最后输出的是AB:B,而不是AB:AB
很想知道原因
另外还想求教哪位前辈,Debug如何看哪部执行了什么????
不尽感激!!!!!


IP属地:北京1楼2014-08-24 10:40回复
    我去 千万不要沉啊 昨天想了好久都没想出来


    IP属地:北京3楼2014-08-24 10:42
    回复
      你想要用这个代码进行什么操作?


      来自Android客户端4楼2014-08-24 10:45
      收起回复
        你在成员变量中添加sf1=sf2;试试看


        来自Android客户端5楼2014-08-24 10:53
        回复
          我也是才开始学,看的是从入门到精通,已经看到第七章,不过第七章有点难


          来自Android客户端6楼2014-08-24 10:54
          回复
            值传递


            IP属地:江西来自Android客户端7楼2014-08-24 10:55
            回复
              貌似append是修改的是sf1对应的值,而等号只是传递的引用。


              IP属地:澳大利亚8楼2014-08-24 11:16
              回复
                你传递过去的是引用,后面只是把引用的地址改了,但是str2 还是指向老的地址,所以str2 值没变。。。听的懂吗?我表达的还不错吧


                9楼2014-08-24 19:57
                回复
                  aMethod里的参数sf2是局部变量,它的值是AB,,所以main程序里的sf2还是B,


                  IP属地:广东10楼2014-08-24 22:38
                  回复
                    stf1.append(stf2);改变stf1的值
                    stf2=stf1改变stf2的引用
                    看Stringbuff和String区别
                    和看java函数传递是值传递还是引用传递


                    IP属地:上海来自Android客户端11楼2014-08-24 23:00
                    回复
                      楼主挺刻苦啊


                      IP属地:北京来自Android客户端12楼2014-09-13 15:29
                      收起回复
                        引用


                        IP属地:浙江来自Android客户端13楼2014-09-13 15:57
                        回复
                          昨天的一道面试题,我选错了


                          来自Android客户端14楼2014-09-13 16:42
                          收起回复
                            aMthod方法里面的 的str只是个变量名而已 就像一件衣服 昨天你穿的蓝色的 今天是你穿了红色的 然后明天你把红色的给了你弟弟穿 然后再问你穿蓝色衣服的叫什么名字 你说你叫什么名字?


                            IP属地:内蒙古15楼2014-09-15 17:23
                            收起回复