示例
public class test1 {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
List<List<Integer>> res = new ArrayList<>();
list.add(1);
res.add(list);
System.out.println(res);
list.add(2);
res.add(list);
System.out.println(res);
}
}
結果
[[1]]
[[1, 2], [1, 2]]
為什麼第二行輸出的結果不是 [[1], [1, 2]] 呢?這是因為 Java 種除了8種基本資料類型的變量外,其他變量都是引用類型變量。即對象的引用存放在棧記憶體中,而 new 出來的對象存放在堆記憶體中。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPR90MnRlT0cmeOBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLwYzM3MjNwAjMxETMxAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)