新手求教

sdoa88975454 2013-09-09 04:31:24
        changeData(sb);

System.out.println("After changeData(n), sb = " + sb);

}



public static void changeData(StringBuffer strBuf) {

StringBuffer sb2 = new StringBuffer("Hi ");

strBuf = sb2;

sb2.append("World!");

}

}

这段代码谁能帮我详细解读下 最好能从内存的角度解读并能告诉我 public static void changeData(StringBuffer strBuf)括号内参数的具体用处。
...全文
124 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
地下室森林 2013-09-11
  • 打赏
  • 举报
回复
知道是个人都能来那你应该知趣点
sdoa88975454 2013-09-11
  • 打赏
  • 举报
回复
引用 7 楼 a1006570862 的回复:
首先,我没说我很厉害一定回答出来。大家来论坛就是有难大家帮,有问题大家提。 不要因为别人揭你的短你就介意 你要是介意别人对你提出问题的话,那这论坛你可以不用来了。
你搞清楚谁接谁短没? 貌似是我把你短接出来了吧?莫名其妙。像你这种题目都没看懂就胡乱臆测的人 少来误人子弟了 .况且你这种人都能来论坛 我觉的是个人都能来。 说你还不服气。 你恼羞成怒什么 出口成脏有意思么。
地下室森林 2013-09-10
  • 打赏
  • 举报
回复
首先,我没说我很厉害一定回答出来。大家来论坛就是有难大家帮,有问题大家提。 不要因为别人揭你的短你就介意 你要是介意别人对你提出问题的话,那这论坛你可以不用来了。
sdoa88975454 2013-09-10
  • 打赏
  • 举报
回复
引用 5 楼 a1006570862 的回复:
[quote=引用 4 楼 sdoa88975454 的回复:] [quote=引用 1 楼 a1006570862 的回复:] 首先,你 changeData(sb); 返回的是空类型,那你程序上直接调用changeData(sb);有什么意思? 你应该让changeData()方法返回一个字符串,这样才有意义
我觉得吧 既然别人提出问题 你首先应该去思考怎样回答别人的问题 而不是去质疑问题的对与错。 难道您考试的时候碰到一下子做不出来的题目也去质疑题目的对错么? 对于您的这种随心所欲回答的态度我表示无法接受。请善待他人别人才会善待你。[/quote] 你这人脑子有坑啊 你问了一个错误的问题,却期待着一个正确的答案,还不许别人提出错误[/quote] 为什么别人回答的出来 有话好好说不会?素质低就是素质低
地下室森林 2013-09-09
  • 打赏
  • 举报
回复
引用 4 楼 sdoa88975454 的回复:
[quote=引用 1 楼 a1006570862 的回复:] 首先,你 changeData(sb); 返回的是空类型,那你程序上直接调用changeData(sb);有什么意思? 你应该让changeData()方法返回一个字符串,这样才有意义
我觉得吧 既然别人提出问题 你首先应该去思考怎样回答别人的问题 而不是去质疑问题的对与错。 难道您考试的时候碰到一下子做不出来的题目也去质疑题目的对错么? 对于您的这种随心所欲回答的态度我表示无法接受。请善待他人别人才会善待你。[/quote] 你这人脑子有坑啊 你问了一个错误的问题,却期待着一个正确的答案,还不许别人提出错误
sdoa88975454 2013-09-09
  • 打赏
  • 举报
回复
引用 1 楼 a1006570862 的回复:
首先,你 changeData(sb); 返回的是空类型,那你程序上直接调用changeData(sb);有什么意思? 你应该让changeData()方法返回一个字符串,这样才有意义
我觉得吧 既然别人提出问题 你首先应该去思考怎样回答别人的问题 而不是去质疑问题的对与错。 难道您考试的时候碰到一下子做不出来的题目也去质疑题目的对错么? 对于您的这种随心所欲回答的态度我表示无法接受。请善待他人别人才会善待你。
sdoa88975454 2013-09-09
  • 打赏
  • 举报
回复
引用 2 楼 xxhhbb1538 的回复:
strBuf在函数里面不应该被从新赋值,否则跟传递进来的对象就失去了联系。  strBuf = sb2; strBuf指向了函数内部定义的局部变量,此时再怎么操作也改变不了传递进来时的对象了。
你说的我大概懂了 为了让这个知识能确定运用到其他地方我还有疑问麻烦解答下:是否StringBuffer srrBuf就是那个传进来的对象?如果不是他是什么?如果是 他是实参还是虚参?是否当重新对实例变量进行重新赋值以后都会出现你说的那种指向了还输内部定义的局部变量而无法操作对象的情况?
  • 打赏
  • 举报
回复
strBuf在函数里面不应该被从新赋值,否则跟传递进来的对象就失去了联系。  strBuf = sb2; strBuf指向了函数内部定义的局部变量,此时再怎么操作也改变不了传递进来时的对象了。
地下室森林 2013-09-09
  • 打赏
  • 举报
回复
首先,你 changeData(sb); 返回的是空类型,那你程序上直接调用changeData(sb);有什么意思? 你应该让changeData()方法返回一个字符串,这样才有意义

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧