Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 交换两个整数值_Java - Fatal编程技术网

Java 交换两个整数值

Java 交换两个整数值,java,Java,因此,我编写了一个简单的函数来交换两个值,但由于某些原因,它们不会被交换。我知道我的代码的逻辑是正确的,但我想知道为什么不交换值。您的问题是Java(当涉及到诸如ints之类的基本值时)是“按值传递”,而您的代码天生就假定为“按引用传递”。 这是一个很好的描述。简言之,调用函数时,参数基本上作为新变量“复制”到函数中,这些新变量与原始变量不同,尽管它们具有相同的值。因此,这些变量的内容独立于父函数变量的内容而变化 public class freedom { public static

因此,我编写了一个简单的函数来交换两个值,但由于某些原因,它们不会被交换。我知道我的代码的逻辑是正确的,但我想知道为什么不交换值。

您的问题是Java(当涉及到诸如ints之类的基本值时)是“按值传递”,而您的代码天生就假定为“按引用传递”。 这是一个很好的描述。简言之,调用函数时,参数基本上作为新变量“复制”到函数中,这些新变量与原始变量不同,尽管它们具有相同的值。因此,这些变量的内容独立于父函数变量的内容而变化

public class freedom {

    public static void main(String args[]){
        int x = 10;
        int y = 20;
        System.out.println(" x is: "+x+" y is: "+y);
        swap(x,y);
        System.out.println(" x is: "+x+" y is: "+y);
    }

    public static void swap(int x, int y){
        int temp = x;
        x = y;
        y = temp;
    }
}