结论与总结: 1.res.add(list)是浅拷贝,将res尾部指向了path地址,后续list内容的变化会导致res的变化。 2.res.add(new ArrayList<>()) 是深拷贝,开辟一个独立地址,地址中存放的内容为list链表,后续list的变化不会影响到res。 具体测试案例: 输出结果: 参考博客: 参考1 参考2