这里的区别呢主要是介绍在函数(方法)中传递一个数组参数时,在函数(方法)内部改变这个数组后,对外部数组有什么影响。
class ChangeIt {static void doIt(int[] z) {z = null; // 直接改变 z 是改变的这个方法中的 z, 而不会改变传过来外部数组}
}class TestIt {public static void main(String[] args) {int[] myArray = { 1, 2, 3, 4, 5 };ChangeIt.doIt(myArray);System.out.println(Arrays.toString(myArray));}
}
[ 1, 2, 3, 4, 5 ]
function testIt(arr) {arr = null;
}var arr = [1, 2, 3, 4, 5];
testIt(arr);
console.log(arr)
[ 1, 2, 3, 4, 5 ]
直接为数组重新赋值的话无论是在 JS 中还是在 Java 中的输出结果都是一样的,都不会改变外部传递的原数组
class LowHighSwap {static void doIt(int[] z) {// 改变 z 中的某一项时,会改变外部传递过来的数组int temp = z[z.length - 1];z[z.length - 1] = z[0];z[0] = temp;}
}class TestIt2 {public static void main(String[] args) {int[] myArray = { 1, 2, 3, 4, 5 };LowHighSwap.doIt(myArray);System.out.println(Arrays.toString(myArray));}
}
[ 5, 2, 3, 4, 1 ]
function testIt2(arr) {var temp = arr[arr.length - 1];arr[arr.length - 1] = arr[0];arr[0] = temp;
}var arr = [1, 2, 3, 4, 5];
testIt(arr);
console.log(arr);
[ 1, 2, 3, 4, 5 ]
为数组中某一项重新赋值的话,在 Java 中改变 z 中的某一项时,会改变外部传递过来的数组;而在 JS 中改变数组中某一项,不会改变外部传递过来的数组
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态