因为java中没有指针,所以也就没有引用传递,java中只有值传递,为了将比较后的结果传出来,我们传入数组引用对象:
void swap(int[] arr, int i, int j){
arr[i] ^= arr[j];
arr[j] ^= arr[i];
arr[i] ^= arr[j];
/*int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;*/
/*arr[i] = arr[i] + arr[j];
arr[j] = arr[i] - arr[j];
arr[i] = arr[i] - arr[j];*/
}
可以使用上述三种方法进行交换。
当一个对象的实例作为参数传递给一个方法后,这个方法可以修改这个对象的属性,并可以返回变化后的结果,这里是引用传递还是值传递?
答:java中只有值传递。这个实例对象在方法中会生成一个引用副本,并指向同一个对象,对象的内容可以在方法中被改变,但是这个对象的引用(不是方法中的引用副本)永远不会发生改变