据我所知,在Java中引用类型是按值分配的,但我无法理解为什么下面的代码会执行它的操作。考虑以下代码:
Integer num = new Integer(11);
List<Integer> arr = new ArrayList<>();
arr.add(num);
List arr2 = arr;
arr = null;
System.out.println(arr2);
我们创建一个包含一个元素的 ArrayList,然后创建第二个列表并将其分配给第一个列表。据我了解,第二个列表仅指向与第一个列表相同的内存位置,因此我对第一个列表所做的任何更改都将应用于第二个列表。如果我将第一个列表设置为空,那么第二个列表也应该变为空。为什么控制台仍然记录 11 而不是 null?
喵喵时光机
LEATH
相关分类