美文网首页
内存(垃圾回收,内存泄漏)

内存(垃圾回收,内存泄漏)

作者: 凉城十月 | 来源:发表于2020-07-21 21:58 被阅读0次

1.EMCAScript规定,数字都是64位存储的,字符串都是16位存储的。

2.简单类型直接存储在stack中,复杂类型(obj)将Heap地址存到stack中。

3.对象中self的用法:

错误用法:

var a = {self: a}
console.log(a.self) //undefined

a是undefined,因为出现变量提升。实际代码为

var a ;
a={self: a}
console.log(a.self)//undefined

赋值给self的a是第一行的a,实际的值是undefined。
正确用法:

var  a= { };
a.self=a;
console.log(a.self) //a

这里的a.self是对象a。

4.面试题

1.【引用】

var a= {n:1};
var b=a;
a.x= a = {n: 2};
alert(a.x); //undefined
alert(b.x); //[object Object] , alert会调用toString()方法

解析:


题1解析

代码第三行的赋值,是从右往左赋值,所以中间的a其实指向的是ADDR22,左边的a.x的a指向的是ADDR21,根据内存图显示a.x为undefined,b.x为对象ADDR22,alert调用toString()方法,所以b.x为[object Object]。

2.【持续引用】

var fn = function(){ };
document.body.onclick = fn;
fn = null;
题2解析
前两句代码如图,当fn=null时,也就是将stack中的ADDR33替换成null,同时heap中的内存不存在垃圾。
但是,当document.body.onclick = null时,fn就是一个垃圾,应该被回收。
如果将浏览器关闭,那么heap中的所有内存都将是垃圾,因为连document都没有了。这时垃圾就会被回收,但是IE6中存在bug。

垃圾回收:如果一个对象没有被引用,它就是垃圾,将被回收。垃圾回收的实质是找一个树的根。
内存泄漏:由于浏览器的bug导致一些该被标记为垃圾的东西没有被标记成垃圾,内存就会被永久占用,除非将整个浏览器关掉。

若浏览器没有关闭,IE6存在内存泄漏bug,不会认为heap中没有被引用的的相连内存块是垃圾,解决办法:

window.onunload = function(){
  document.body.onclick = null ;
}

相关文章

  • 记一次面试

    内存泄漏和内存溢出 概念 内存泄漏:垃圾回收器无法回收原本应该被回收的对象,这个对象就引发了内存泄露。 内存溢出:...

  • 性能优化 - 相关概念

    1. 内存泄漏和内存抖动 内存泄漏:GC,垃圾回收器,在内存吃紧时候回收内存时,无法回收某一块不再使用的区域...

  • Android 优化

    Android 内存优化内存溢出 , 内存泄漏 , 内存泄漏过多就导致内存溢出 Android 系统垃圾回收机制内...

  • android 内存泄漏(多文章摘录)

    内存泄漏 gc没有办法回收activity的内存。 垃圾回收(GC) 垃圾回收或GC(Garbage Collec...

  • JS的内存泄漏垃圾回收

    一.垃圾回收 JS的垃圾回收机制是为了以防内存泄漏,内存泄漏的含义就是当已经不需要某块内存时这块内存还存在着,垃...

  • 前端面试-JS垃圾回收机制

    什么是垃圾回收机制? JS的垃圾回收机制是为了以防内存泄漏,内存泄漏的含义就是当已经不需要某块内存时这块内存还存在...

  • 垃圾回收机制

    概述 JS的垃圾回收机制是为了以防内存泄漏,内存泄漏的含义就是当已经不需要某块内存时这块内存还存在着,垃圾回收机制...

  • JS 里垃圾回收机制是什么,常用的是哪种,怎么处理的?

    JS 的垃圾回收机制是为了以防内存泄漏,内存泄漏的含义就是当已经不需要某块内存时这块内存还存在着,垃圾回收机制就是...

  • 对 Java 内存的一些理解-[Android_YangKe]

    Java 垃圾回收机制优点 Java 内存模型 什么是内存抖动 什么是内存泄漏 垃圾回收机制常见算法 Java 垃...

  • 直击面试,聊聊 GC 机制

    GC 中文直译垃圾回收,是一种回收内存空间避免内存泄漏的机制。当 JVM 内存紧张,通过执行 GC 有效回收内存,...

网友评论

      本文标题:内存(垃圾回收,内存泄漏)

      本文链接:https://www.haomeiwen.com/subject/kgewcktx.html