大家好,我正在学习SCJA考试,并且有一个关于字符串按引用/值传递以及它们是不可变的问题。以下代码输出“abc abcfg”。
我想知道的是为什么会发生这种情况?我不理解方法f内部发生了什么。字符串通过值传递,所以它应该在方法内部更改为“abcde”,对吗?因为如果b + =“fg”附加到字符串,为什么在方法内部不起作用呢?
谢谢!
public class Test {
public static void main(String[] args){
String a =new String("abc");
String b = a;
f(b);
b+="fg"
System.out.println(a + " " + b);
}
public static void f(String b){
b+="de";
b=null;
}
}