我的编程空间,编程开发者的网络收藏夹
学习永远不晚

weakMap为什么是弱引用原理

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

weakMap为什么是弱引用原理

前言

聊一下WeakMap弱引用,看了很多文章发现说的不对,给出的demo经过尝试也是错误的,哎,难搞也要搞

弱引用 vs 强引用

对象被强引用则不会被垃圾回收机制回收,这没啥说的。那到底啥事弱引用呢?

垃圾回收机制最常用的方法就是引用计数,只要有引用堆内存的地方,引用计数就要加1。如果一个值的引用次数是0,就表示这个值不再用到了,因此可以将这块内存释放

弱引用则可以理解为引用计数不会+1,看一下实际表现

Map vs WeakMap

var m = new WeakMap()
function Foo() {
  this.arr = new Array(5 * 1024 * 1024)
}
var f = new Foo()
m.set(f, 'data')
f = null

网上有人说m.get('f')得到的是undefined所以是弱引用,但其实你使用Map得到的也是undefined,这种说法还非常的多,不能说他说的不对吧,简直就是胡说。

回归正传,看一下为啥说WeakMap是弱引用。打开F12,选择内存(memory),点击小圆点获取快照,然后搜索Foo,发现并没有表示其已经被回收

而后将WeakMap改为Map重新获取快照,发现Foo没有被回收

这个方式可以很直观的表明WeakMap的弱引用

以上就是weakMap为什么是弱引用原理的详细内容,更多关于weakMap为什么是弱引用的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

weakMap为什么是弱引用原理

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

weakMap为什么是弱引用原理

这篇文章主要为大家介绍了weakMap为什么是弱引用原理解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-02-10

Java中弱引用的概念和作用是什么

本篇内容介绍了“Java中弱引用的概念和作用是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!概览本文会通过对弱引用的定义讲起,然后通过案
2023-06-16

SharedPreference引发ANR原理是什么

这篇文章主要介绍“SharedPreference引发ANR原理是什么”,在日常操作中,相信很多人在SharedPreference引发ANR原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Share
2023-07-05

Lucene倒排索引原理是什么

本篇内容主要讲解“Lucene倒排索引原理是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Lucene倒排索引原理是什么”吧!一、搜索引擎介绍1.1 搜索引擎是什么这里引用百度百科的介绍:搜
2023-06-02

C++引用怎么使用及底层原理是什么

本篇内容介绍了“C++引用怎么使用及底层原理是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!引用引用不是定义一个新变量,而是给已存在的变
2023-06-30

innodb联合索引的原理是什么

InnoDB联合索引的原理是将多个列的值组合起来作为索引的键,并按照指定的顺序进行排序和存储。它使用B+树数据结构来实现索引存储和查找。当创建一个联合索引时,InnoDB会按照指定的列顺序创建一个B+树索引结构。每个索引节点都包含了所有列
2023-10-27

MySQL索引的实现原理是什么

MySQL的索引实现原理主要基于B+树结构。B+树是一种多路平衡查找树,它的每个节点可以存储多个键值对,并且所有叶子节点通过指针连接起来,形成一个有序的链表。在B+树中,每个节点的子节点数量介于m/2和m之间,其中m是节点的最大容量。这种平
2023-08-15

搜索引擎工作原理是什么

本篇内容介绍了“搜索引擎工作原理是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!搜索引擎发展过程现代意义上的搜索引擎的祖先,是1990年
2023-06-04

mysql联合索引的原理是什么

MySQL联合索引的原理是通过将多个列组合成一个索引,提高多列查询的效率。联合索引的原理可以通过B+树来解释。B+树是一种多叉树,它的每个节点有多个子节点。在MySQL中,每个索引都是一个B+树。对于联合索引,B+树的节点存储的是多个列的值
2023-09-21

编程热搜

目录