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

输出结果:
参考博客:
版权声明:本文为m0_51816870原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
1.res.add(list)是浅拷贝,将res尾部指向了path地址,后续list内容的变化会导致res的变化。
2.res.add(new ArrayList<>()) 是深拷贝,开辟一个独立地址,地址中存放的内容为list链表,后续list的变化不会影响到res。

输出结果:
参考博客: