String类引用计数和写时拷贝

网友投稿 738 2022-05-30

string 类写到这里已经是升级版了,大家能看懂多少算多少,在面试的时候尽量不要给面试官说你懂这个,万一把自己搞糊涂了,岂不是得不偿失。

好了 ,废话到此结束,正文开始。

引用计数

我们知道,在浅拷贝当中,由于多个对象共用同一块空间,最后释放内存的时候导致同一块内存多次释放而出现问题,那么问题来了,**能否保证当多个对象共同使用同一块空间时,该空间只释放一次? **答案当然是可以的了。 引用计数原理:当多个对象共享同一块资源时,要保证该资源只释放一次,只需要记录有多少个对象在管理这份资源即可,每增加(减少)一个对象相时,给该记数加一(减一),当最后一个对象不使用时,该对象负责将资源释放掉即可。 具体操作我们看代码:

采用引用计数后虽然解决了这个问题,但它仍然是浅拷贝,而且,如果对象很多的话,我们可能会忘记释放某一些空间,为了完美的解决这个小小的缺陷,我们又引进了写时拷贝这个概念。

以前在动态内存开辟中说new[]的时候应该说过new[]在底层其实人家是给它多开辟了4个字节的内存,用来存放引用记数,这样不仅解决了上述问题还可以让我们随意更改单个字符。

String类之引用计数和写时拷贝

本文转载自异步社区

软件开发 编程语言

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:使用CDS view开发SAP Marketing contact的facet追溯工具
下一篇:#化鲲为鹏,我有话说# 鲲鹏弹性云服务器配置 JAVA 环境
相关文章