(先来一张图)计算机存储结构金字塔
重点:平常写代码的时候,静态存储区域、堆栈的数据到底在内存的哪个地方
1.首先寄存器、一级缓存、二级缓存、内存条都有内存,都能存数据,只是空间容量和访问速度的快慢不同。
2.平常代码里面的全局变量和静态变量在静态数据区。堆栈数据就不讲了。
3.只要有地址的东西,都在内存条里。静态存储区域、堆栈的数据存储的位置是在内存条中。
4.数据存储的过程都会经过一级缓存、二级缓存、最终到内存条中。所以一级缓存、二级缓存只是会存储临时数据。
5.为什么有的文章会说栈在一级缓存、堆在二级缓存。这种文章都是瞎扯。说法不正确。一级缓存通常存储的是访问比较频繁的数据,因为栈的数据访问的比较频繁,所以一级缓存上面的数据通常存的是栈数据的临时数据,但是如果你堆数据访问的很频繁,那么堆数据就可以在一级缓存。所以这类文章的本意可能要说因为平常堆的访问没有栈的数据访问的频繁。默认为栈数据在一级缓存。