【问题标题】:Passing by reference in Java. Help me understand [duplicate]在 Java 中通过引用传递。帮助我理解[重复]
【发布时间】:2017-03-28 07:10:57
【问题描述】:

我有以下代码

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;

我不明白为什么当我打印“word”变量时它仍然打印“Super”,即使我在 reverseString 方法中更改了它。我知道字符串是通过引用传递的,而不是像原始值这样的副本。

如果我这样做word = reverseString(word),它会打印出我所期望的相反,“repuS”

谢谢

【问题讨论】:

标签: java pass-by-reference


【解决方案1】:

您没有更改reverseString 中的字符串,而是创建了一个新字符串并返回了新字符串(您将其称为helper)。

关于 Java 中字符串的第二点需要注意的是,它们是不可变的——所有字符串方法都返回一个新字符串,而不是修改您调用该方法的那个字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-16
    • 2011-08-28
    • 2013-10-31
    • 1970-01-01
    • 2020-12-29
    • 2020-06-11
    • 2011-06-03
    • 1970-01-01
    相关资源
    最近更新 更多