相关疑难解决方法(0)

Java是"通过引用传递"还是"传递价值"?

我一直认为Java是传递引用的.

但是,我看过一些博客文章(例如,这个博客)声称它不是.

我不认为我理解他们所做的区别.

解释是什么?

java methods parameter-passing pass-by-reference pass-by-value

6270
推荐指数
80
解决办法
189万
查看次数

是否可以在Java中编写swap方法?

这是一个问题:编写一个交换两个变量的方法.这两个变量应该是原始的.它不需要是通用的,例如两个int变量.有办法吗?!

java swap primitive-types

49
推荐指数
4
解决办法
5万
查看次数

在Java中交换两个字符串,方法是将它们传递给实用程序函数,但不返回对象或使用包装类

我试图在Java中交换两个字符串.我从未真正理解"字符串是不可变的".我在理论上理解它,但我在实践中从未遇到过它.

此外,由于String是Java中的对象而不是基本类型,我不明白为什么以下代码两次打印相同的结果,而不是交换单词!

public static void main(String[] args)
{
    String s1 = "Hello";
    String s2 = "World";

    System.out.println(s1 + " " + s2);

    Swap(s1, s2);

    System.out.println(s1 + " " + s2);
}

public static void Swap(String s1, String s2)
{
    String temp = s1;
    s1 = s2;
    s2 = temp;
}
Run Code Online (Sandbox Code Playgroud)

我想要它打印

Hello World
World Hello
Run Code Online (Sandbox Code Playgroud)

但它是印刷品

Hello World
Hello World
Run Code Online (Sandbox Code Playgroud)

我认为s1和s2是引用,因此引用应该交换,新引用应分别指向另一个引用.我哪里错了?

java string pass-by-reference

8
推荐指数
2
解决办法
2万
查看次数