-2
我有以下代码在Java中通过引用传递。帮助我了解
public static void main(String[] args) {
String word = "Super";
reverseString(word);
System.out.println(word);
}
public static String reverseString(String word) {
String helper = "";
int i = word.length() - 1;
while (i >= 0) {
helper += word.charAt(i);
i--;
}
return helper;
我不明白,为什么当我打印“字”,变量仍打印“超级”即使我改变了它在reverseString方法。我知道字符串是通过引用传递的,而不是像原始值这样的副本。
如果我做word = reverseString(word)
它打印扭转我所期望的,“repuS”
感谢
字符串在java中是不可变的 – Jens
可能的重复可能会帮助您在后面的逻辑下通过引用http://stackoverflow.com/questions/9404625/java-pass-by-reference – Arindam