使用伪代码进行测试,期望test2中的值不被清空,结果输出值为0,对象被释放了
测试后发现,Remove和Clear的效果一样,都会将对象释放,输出了期望之外的结果
换一种写法,这次在清空了test1的基础上,test2中的对象并没有被释放,输出值为1
结论:使用Clear或者Remove时,释放了集合test1和test2所共同引用的对象,而使用new新建对象时,不会释放对象,而是使集合test1指向了一个新的对象