为什么用引用类型来传递,但结果值却没有变

2025年02月23日 13:31
有3个网友回答
网友(1):

呵呵 又见面了 刚才我回答你的问题 你还没给我分呢
你别先给楼上分 他们根本就没理解你的意思 一会儿 我给你满意答案
已经加你为好友了

String类比较特殊 String是常量字符串 在一定意义上是“不可改变”的,我们平常对String的改变 本质上是生成一个新的字符串 然后再把原来的引用 指向新生成的字符串
你在class B123中通过形参words把字符串c的引用传入,而 words=words+words完成的工作是生成一个 新的字符串(特别注意) 这个字符串的引用为words, 而你没有把words的引用赋给c

友情提示:尽量不要用这种容易混淆的代码,如果你要使用经常改变的字符串 建议使用 StringBuffer类 他是变量字符串

网友(2):

你调用B123.add()方法是不能改变String c的值的。当你调用add方法时,它会自动创建一个变量(words)去接受你传递的值。add()方法改变的时words的值,而不是string c的值。

网友(3):

你这参数名都一样 你以为JAVA会自己分辨吗??