其他
垃圾回收机制
- 引用计数:根据变量值的引用数量
- 标记清除:用来解决循环引用带来的内存泄漏问题.
- 标记:从根节点出发遍历对象,对能访问到对象值的打上标记,表示对象可达
- 清除:对那些没有标记的对象进行回收
- 分代回收:降低引用计数的扫描频率,提高垃圾回收的效率,
新生代
、老年代
,新生代分为伊甸区
、幸存区
。对象刚创建时存在于伊甸区,经过一次回收如果对象还存在时,放入幸存区,幸存区经过多次(一般为15次)回收依然存在,则放入老年代,回收时先回收新生代,如果内存足够时则不扫描老年代,否则扫描老年代
深浅拷贝
- 浅拷贝:是把原列表第一层的内存地址不加区分完全copy一份给新列表,修改可变类型中的值,影响原数据
# python list1=[ 'egon', 'lxx', [1,2] ] list3=list1.copy()
- 深拷贝:为了使得新列表与原列表的改操作完全独立开,区分开可变类型与不可变类型的copy机制
import copy # 引入深拷贝模块 list3 = copy.deepcopy(list1)
队列与堆栈
-
队列:FIFO,先进先出
l = [] # 入队 l.append('first') l.append('second') l.append('thrid') # 出队 l.pop(0) l.pop(0) l.pop(0)
-
堆栈:LIFO,后进先出
l = [] # 入栈 l.append('first') l.append('second') l.append('thrid') # 出栈 l.pop() l.pop() l.pop()
字符编码
- ACSII码表
- GBK、Shift-JIS
- unicode:
- 兼容万国字符、与万国字符都有对应关系
- 采用16位(8位=1Bytes)偏僻字采用4字节、8字节
- utf-8:
unicode transform format-8
英文->1Bytes、汉字->3Bytes
内存规定使用的是
unicode
,我们可以改变的是存入硬盘采用的格式unicode-gbk/unicode-shif-jis/unicode-utf-8
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署