垃圾回收机制与字符编码详细介绍


提示:以下是本篇文章正文内容,下面案例可供参考

一、垃圾回收机制

1.引用计数

引用计数是计算机编程语言中的一种内存管理技术,是指将数据的引用计数保存起来,每个对象上都有一个引用计数,对象每被引用一次,引用计数器就+1,对象引用被释放引用计器-1,直到对象的引用计数为0,对象就标识可以回收。但是这个算法有明显的缺陷,对于循环引用的情况下,循环引用的对象就不会被回收。
在这里插入图片描述

2.标记清除

标记清除的出现打破了循环引用,也就是它只关注那些可能会产生循环引用的对象,就是说
只需要去内存中查找已经被标记的数据然后一次性清除

3.分代回收

分代回收就是将数据分成了三种类型,标记清除每隔一段时间就需要将所有的数据排查一遍 资源消耗过大,一种为随时检查的,一种经常检查的,一种为偶尔检查的,越往下检测的频率
越低,活的越长的对象,就越不可能是垃圾,就应该减少对它的垃圾收集频率。所以能够减少
资源的消耗.

二、字符编码发展史

1.一枝独秀

我们大家都知道计算机是有美国1946年2月14日问世,当时为了让计算机识别英文字符,所以就发明了字符编码,我们都知道,计算机只能处理数字,即0和1二进制,英文所有的字符加起来不超过127个(2的七次方) ,但是美国人考虑到后续可能出现新的字符所以加了一位以备不时之需(2的八次方),1963年ASCII码就诞生了,当时只能识别英文不能识别其他字符,所谓一枝独秀。
在这里插入图片描述

2.群雄崛起

因为当时计算机只能识别英文,识别不了别国语言,所以各国的编码都依次出现,1980年中国编码GBK诞生,内部记录了中文字符、英文字符与数字的对应关系,各国语言都是如此。
在这里插入图片描述

3.天下统一

此时各国都有各国的编码语言,但是无法交互给对方,把自己的传达给对方就会乱码,所以到此1994年研究了万国码Unicode兼容全部国家字符,因为后面不是很完善会有所更新到现在大家都知道的UTF-8。

三、字符编码实操

只有字符串可以参与编码解码,其他数据类型需要先转换成字符串才可以。

1.解决乱码的措施

	当我们在写代码的过程中会碰到一些乱码的问题,这时候我们只需要更改回来它原来的编码就行了。

ex:在图中选择您编码的码就好了。
在这里插入图片描述

2.编码与解码

	编码就是将我们人说的语言想法按照编码转换成计算机能识别的二进制数字。
	解码就是计算机将二进制数字按照编码翻译成人类能识别的字符。
	code = '我就是编码呀'			# 始终记住用编码就用什么解码
	res = code.encode('gbk')	# 设置编码语言 GBK
	print(res, type(res))		# 结果	b'\xce\xd2\xbe\xcd\xca\xc7\xb1\xe0\xc2\xeb\xd1\xbd' <class 'bytes'>
	------------------------------------------------------------
	res1 = res.decode('gbk')	# 设置解码语言 GBK
	print(res1)					# 结果	我就是编码呀

3.解释器层面

	Python2中默认使用ASCII编码,Python3中默认使用UTF-8,如果需要指定其他的
	编码格式需要在代码的第一行或者第二行进行注释定义。
	Python2中字符串需要在前面加一个U要不然回乱码。	

在这里插入图片描述

总结

本文仅对垃圾回收机制和字符编码做了一些简单的个人理解介绍,有错误或不解的地方请指出,如果这篇文章对你有所帮助请点赞收藏+关注谢谢支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LoisMay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值