5月28号 垃圾回收机制

 1、垃圾回收機制詳解(了解)
# 垃圾回收机制原理分析
# Python的GC版块主要运用了“引用计数”来跟踪和回收垃圾。在引用计数的基础上,还可以通过“标记-清除”解决容器对象可能产生
# 的循环引用的问题,并且通过“分代回收”以空间换取时间的方式来进一步提高垃圾回收的效率。

# 引用计数
# x = 10
# print(id(x)) # 直接引用
# y = x
# z = x

# l = ['a','b' x] # 间接引用
# print(id(l[1])) #
#
# d={'mmm':x} #间接引用
# print(id(d['mmm'])) #间接引用



# x = 10
# # l = ['a','b', x] #['a'的内存地址,'b'的内存地址,'10的内存地址']
#
# x=123
# print(l[2]) # 对应的是10的内存地址



# 栈区:存放的是变量名与内存地址的对应关系,可以简单的理解为:变量名存内存地址
# 堆区:存放的是变量值
# 强调:只站在变量的名的角度去谈一件事情
# 变量名的赋值(x=y),还有变量名的传参(print(x)),传递的都是栈区的数据,而且栈的数据是
# 变量名与内存地址的对应关系,或者说是对值的引用

# Python是引用传递

# 示列1:
# x=10
# y=20
# x=y
# 示列2:
# l=[111,222,333]
# l1=[2222222,6666666,444444]
#
# l2=l
# 直接引用是指从栈区出发直接引用到内存地址
# 间接引用指的是从栈区出发引用到堆区后,再进一步引用才能到达的内存地址



# 标记清除
# 通俗的讲就是:栈区相当于“根”,凡是从根出发可以访达(直接引用或间接引用)的,都称之为“有根之人”,有根活,无根死。
# 分代回收

#

猜你喜欢

转载自www.cnblogs.com/ltyc/p/12984703.html