1.引用计数
每个对象记录被对象绑定的数量,当为0时被销毁
缺点:列表循环引用:两个列表即使都是垃圾也不会被销毁,因为引用计数为1
2.标记清除
扫描全部内存,标记没用的数
缺点:全盘扫描消耗资源过大
3.分代回收(年轻代,中年代,老年代)
新创建的对象,会在年轻代分配空间
本带空间存满后,进行升代(标记清除)
继续在本空间开头存储数据
老年代被清除的几率不是很高。
4.价值
尽量少产生垃圾
stro01 = ''
for i in range(10):
#str01 = str01 + str(i) 这样会创建垃圾
#使用列表,追加比较合适
对象池,提高内存利用率,相同对象只存储一份
拓展:小整数池(-5—256)整数,会存在内存中不释放