考虑这个代码段,如果它将a
的{{1}}属性设置为2,为什么不将test
设置为null?
b
答案 0 :(得分:1)
因为test
是对对象(特定于数组)的引用,所以基本上是指向数组存储在内存中的箭头。它的值是它对内存中数组的引用。
当你将它传递给函数clear
时,a
现在拥有一个新的引用,指向内存中的同一个数组,因此修改b
属性反映了test
的变化。 1}}。两个引用都看到您已更改b
属性,因为它们指向同一个数组。
然后将a
设置为null。 a
和test
是指向同一数组的单独引用,因此您将a
与数组的连接中断,而不是test
的连接。 test
保持不变。
答案 1 :(得分:0)
为什么b = 2添加到数组
因为您在将a
设置为null
之前已将其添加到数组中。
但它不会变为空?
您将a
变量设置为null
。这不会触及数组的test
变量或b
属性。