public static void swap(int a,int b)函数中的形参a,b相当于定义在本函数中的局部变量,局部变量在该函数调用结束后其内存空间就会被释放。由于java中只有值传递,所以主函数中的调用swap(x,y);实际上是把实参x,y赋值给形参a,b,在swap函数内部实际上是操作的形参a,b,而不会改变实参的值。
而利用数组,由于数组是引用类型,所以在进行参数传递时实际传递的是数组元素的引用(即数组元素的地址),则在swap函数内部操作的是引用,是直接在地址上进行间接操作。 |