带着问题看计算机系统
Posted gugege
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带着问题看计算机系统相关的知识,希望对你有一定的参考价值。
1.
当从一个变量向另一个变量赋值引用类型的值时,同样也会将存储在变量中的对象的值复制一份放到为新变量分配的空间中。前面讲引用类型的时候提到,
保存在变量中的是对象在堆内存中的地址,所以,与简单赋值不同,这个值的副本实际上是一个指针,而这个指针指向存储在堆内存的一个对象。那么赋值操作后,
两个变量都保存了同一个对象地址,则这两个变量指向了同一个对象。因此,改变其中任何一个变量,都会相互影响:
-
var a = {}; // a保存了一个空对象的实例var b = a; // a和b都指向了这个空对象a.name = \'jozo\';console.log(a.name); // \'jozo\'console.log(b.name); // \'jozo\'b.age = 22;console.log(b.age);// 22console.log(a.age);// 22console.log(a == b);// true
它们的关系如下图:
立个flag:复习一下计算机系统,彻底搞清楚堆内存的实现方式。
编译的时候先把代码里的所有a对象的相关部分拿出来分析决定a对象在堆区内存中占的空间大小还是按顺序编译,遇到a的内容重新扩容?
栈区就是个string -- > string 的map?
以上是关于带着问题看计算机系统的主要内容,如果未能解决你的问题,请参考以下文章