那发明它是为了做啥呢?就是在啥情况会用啊?我就是要个很容易理解的概念,不然好难理解
追答当两个对象需要互相引用的时候,我们总希望其中一个对象拥有另外一个对象的强引用,而另外一个对象拥有自己的弱引用
如果两个对象都是强引用,则容易引起循环引用,导致两个对象都无法正确释放
我好像有点理解了,能再说的具体一点不?比如说呢?一个强引用一个弱引用会发生什么呢?
追答假如A拥有B的强引用,B拥有A的弱引用
那么A被析构的时候,B的计数器会减1,有可能导致B的析构
但是B无法在A之前被析构,因为A拥有B的强引用
举个例子
汽车A应该拥有引擎B的强引用,引擎B应该拥有汽车A的弱引用
因为当汽车A报废的时候,引擎B应该被自动析构,除非引擎B也被其他汽车C使用着
但是引擎B不应该被析构,因为汽车A正使用着他
但是引擎B不应该拥有对汽车A的强引用,因为引擎B拥有汽车A的强引用的话,即便不再有人拥有这辆汽车A,但是因为引擎B对汽车A的强引用,导致汽车A在“被使用者”,所以汽车A和引擎B形成循环引用,两者均无法正确被释放