博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
垃圾回收机制及正则
阅读量:4945 次
发布时间:2019-06-11

本文共 1469 字,大约阅读时间需要 4 分钟。

一、垃圾回收机制

  • 不能被程序访问到的数据,就称之为垃圾

1、引用计数

  • 引用计数是用来记录值的内存地址被记录的次数的
  • 每一次对值地址的引用都可以使该值的引用计数 +1
  • 每一次对值地址的释放都可以使该值得引用计数 -1
  • 当一个值的引用计数为0时,该值就会被系统的垃圾回收机制回收

2、循环导入

  • 循环导入会导致某些值得引用计数永远大于0
ls1 = [666]ls2 = [888]ls1.append(ls2)ls2.append(ls1)

3、标记删除

  • 标记:标记的过程其实就是,遍历所有的GC Roots对象(栈区中的所有内容或者线程都可以作为GC Roots对象),然后将所有GC Roots的对象可以直接或间接访问到的对象标记为存活的对象,存放到新的内存空间中
  • 删除:删除的过程将遍历堆中所有的对象,将之前所有的内容全部清除

4、分代回收

  • 分代:指的是根据存活时间来为变量划分不同等级(也就是不同的代)
  • 回收:依然是使用引用计数作为回收的依据
'''新定义的变量,放到新生代这个等级中,假设每隔1分钟扫描新生代一次,如果发现变量依然被引用,那么该对象的权重(权重本质就是个整数)加一,当变量的权重大于某个设定得值(假设为3),会将它移动到更高一级的青春代,青春代的gc扫描的频率低于新生代(扫描时间间隔更长),假设5分钟扫描青春代一次,这样每次gc需要扫描的变量的总个数就变少了,节省了扫描的总时间,接下来,青春代中的对象,也会以同样的方式被移动到老年代中。也就是等级(代)越高,被垃圾回收机制扫描的频率越低'''
View Code

二、正则

# 正则:正则就是带语法的字符串,用来匹配目标字符串得到想要的字符串结果# 语法:# 1.单个字符# \d == [0-9]# \D == [^0-9]# \w == 字母+数字+_# [0-9A-Za-z] == 所有字母+数字# . == 匹配所有单个字符(刨除换行)# 2.多个字符# zo* == zo{0,}# zo+ == zo{1,}# zo? == zo{0,1}# 应用# 匹配多个zo:zozozozo# (?:zo){1,}# 3.多行# ^: 以什么开头 $: 以什么结尾  结合 flags=re.M  可以按\n来完成多行匹配# re.S:将\n也能被.匹配  re.I:不区分大小写# 4.分组# 1.从左往右数数 ( 进行编号,自己的分组从1开始,group(0)代表匹配到的目标整体# 2.(?: ... ):取消所属分组,()就是普通(),可以将里面的信息作为整体包裹,但不产生分组regexp = re.compile('(?:(?:http://)(.+)/)')  # 生成正则对象target = regexp.match('http://www.baidu.com/')print(target.group(1))  # www.baidu.com# 5.拆分print(re.split('\s', '123 456\n789\t000'))# 6.替换# 1.不参与匹配的原样带下 2.参与匹配的都会被替换为指定字符串# 3.在指定字符串值\num拿到具体分组 4.其他字符串信息都是原样字符串print(re.sub('《(?:[a-z]+)(\d+)(.{2})', r'\\2abc\2\1', '《abc123你好》'))

转载于:https://www.cnblogs.com/wangyisen/p/10733452.html

你可能感兴趣的文章
Bootstrap简单介绍
查看>>
iOS Touch ID 身份认证
查看>>
springboot 注解笔记
查看>>
图解HTTP---------------------------------------4
查看>>
rsync+inotify脚本
查看>>
文件上传
查看>>
(Problem 92)Square digit chains
查看>>
0809
查看>>
FineUIPro v5.2.0已发布(jQuery升级,自定义图标,日期控件)
查看>>
智能合约安全前传-基础知识入门
查看>>
Myeclipse反编译插件
查看>>
Dubbo和Zookerper的关系
查看>>
centos 5 系统安装MYSQL5.7
查看>>
docker数据卷(转)
查看>>
地图定位及大头针设置
查看>>
oracle常用小知识点
查看>>
CATransform3D参数的意义
查看>>
怎么自己在Objective-C中创建代理
查看>>
Under Armour Drive 4 Performance Reviews
查看>>
C#操作目录和文件
查看>>