当前位置: 首页 > 面试题库 >

Java:为什么这种交换方法不起作用?

芮祺
2023-03-14
问题内容

我有以下代码:

public class Main {

    static void swap (Integer x, Integer y) {
        Integer t = x;
        x = y;
        y = t;
    }

    public static void main(String[] args) {
       Integer a = 1;
       Integer b = 2;
       swap(a, b);
       System.out.println("a=" + a + " b=" + b);
    } 
}

我希望它能打印a = 2 b = 1,但它却打印相反的东西。因此很明显,swap方法不会交换a和b值。为什么?


问题答案:

这与整数的不变性无关。它与 Java是值传递 ,该死
的事实有关! (不烦恼,只是文章标题:p)

总结一下:您实际上不能在Java中创建交换方法。您只需要在需要的地方自己进行交换即可。反正这只是三行代码,所以应该不成问题:)

    Thing tmp = a;
    a = b;
    b = tmp;


 类似资料:
  • 问题内容: 这段代码有什么问题: 问题答案: 三元运算符不能有不返回值或方法的语句。您需要具有返回值的语句。 您需要重写它。

  • 这是一个交集方法,在该方法中,我应该返回一个包含列表和中所有相同元素的列表,但该程序正在无限循环,并且该方法中唯一的循环可以无限循环,所以我不明白它为什么不工作。 和方法工作非常好。 我更新了代码,我认为它会起作用,但现在在toString方法的行中出现了另一个错误。这是一个空指针异常,但为什么它是一个错误?

  • 输入是:1。硬币中一定数量货币的总重量,2。旧货币硬币的价值和相应重量。 目标是找到给定金额货币的最低可能货币价值。 我的方法是按货币的价值/重量比升序对硬币进行排序,然后贪婪地将第一枚硬币的重量尽可能多地匹配到总和中(跟踪它匹配的次数),然后匹配将第二枚硬币的重量尽可能多次地放入余数中,等等,对于所有硬币或直到余数为零(如果不是,情况是不可能的)。 法官说我的答案是错误的。你能给我一个关于算法错

  • 我有一个h2作为唯一的项目在一个容器div。我在容器上使用position:relative和h2上使用position:absolute/bottom:0使它与容器底部对齐。但是,我无法使h2文本与容器div的右侧对齐。 HTML: CSS: 链接:http://www.distributionaccess.com/new/stempath/about.html 我在h2上尝试了display:

  • 我第一次用一个辅助数组实现了合并排序,以尝试使用JavaScript实现可视化。这似乎应该是有效的,但它不是。任何帮助或提示将不胜感激。 编辑:我忘了包括它不起作用的情况。它们是: 输入:[4, 2, 5, 6, 7, 7]输出:[4, 2, 5, 6, 7, 7] 输入:[6,6,6,4,6,2]输出:[4,6,6,6,6,2] 输入:[6, 7, 3, 10, 7, 9, 6, 3, 4, 6

  • 我在move\u r函数中有after语句。但当我点击空格键时,它说 我相对知道这意味着什么,但我不知道该怎么改变我的程序应该画一个火箭,然后当你点击太空时,火箭向上移动。不幸的是,我的程序每次点击空格只会上升100次,而不是一次点击空格就自动上升,这是我的目标。我的代码是: