【发布时间】:2017-02-19 20:32:37
【问题描述】:
当将 String a 传递给 myFunction() 时,我传递了引用。为什么当它退出时,引用指向旧的 String ?它不使用对字符串的真实引用吗?
import java.time.*;
public class Main {
public static void main(String[] args) {
String a = "aaa";
myFunction(a);
System.out.println(a);
}
private static void myFunction(String a) {
a = a + "111";
System.out.println(a);
}
}
【问题讨论】:
-
您可以传递例如
StringBuilder,因为它可以被方法修改,或者从方法返回结果String。 Java 字符串是不可修改的(常量、冻结)。 -
为了回答您的问题,仅将引用传递到方法中。如果在方法中更改了引用,则不会将新的引用传回。
标签: java string parameters parameter-passing