java - Java中的对象交换

标签 java pass-by-reference

<分区>

我研究过 java 是通过引用传递的,但是当我执行以下代码时,为什么在 main 方法中没有交换字符串?

static void swap(String s1, String s2){
    String temp = s1;
    s1=s2;
    s2=temp;
}

public static void main(String[] args) {
    String s1 = "Hello", s2 = "world";
    swap(s1, s2);
    System.out.println(s1 + s2);
}

最佳答案

您研究了错误的来源。 Java是按值传递的。 Here是您可以研究的更多来源。来自here您可以找到与您的示例类似的讨论。

关于java - Java中的对象交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11699955/

相关文章:

Java:创建数组的副本而不使其成为引用

c# - 使用 new List<T>(list) 后 List 仍然通过引用传递

java - 使用 Grails 脚手架时使用 XML 进行响应

java - 了解 Java 在用作方法参数时如何处理对象

c - 使用 C 将 char * 传递给 fopen

javascript - 即使删除原始属性后,通过引用复制到第二个属性的对象仍然存在?

java - 当我运行此 JFrame 时,为什么我的按钮不会出现?

java - Libgdx 错误(NullPoinerException)

java - 将 JComboBox 的初始选定索引设置为 -1 或无

java - 正则表达式 - 匹配具有零个或一个空格的字符串