读《程序是怎样跑起来的》第四章有感

第四章——熟练使用有棱有角的内存

内存的物理机制很简单
内存的物理机制:
内存实际上是一种名为内存IC的电子元件,包括DRAM、SRAM、ROM等多种形式,内存IC中有电源、地址信号、数据信号、控制信号等用于输入输出的大量引脚,通过为其制定地址,来进行数据的读写。

内存的逻辑模型是楼房
内存的实体是内存IC,从程序员的角度来看,可以把他假象成每层都存储着的楼房;在程序员眼里的内存模型中还包含着数据类型,编程语言中的数据类型表示存储的是何种类型的数据。变量的数据类型不同,所占用的内存大小也不一样。

简单的指针
指针:指针也是一种变量,表示的是存储着数据的内存的地址,通过使用指针,可以对任意制定地址的数据进行读写,Wondows计算机上使用的程序通常都是32位的内存地址,指针变量的长度也是32位。

在定义指针时,通常会在变量名前加一个星号(*),定义各种数据类型指针的定义,表示的是从指针存储的地址中一次能够读写的数据字节数。

数组是高效使用内存的基础
数组是指多个同样数据类型的数据在内存中连续排列的形式。
作为数据元素的各个数据会通过连续的编号被区分开来,这个编号称为索引。指定索引后,就可以对该索引所对应地址的内存进行读写操作。
数组的定义中所指定的数据类型,也表示一次能够读写的内存大小。
数组是内存的使用方法的基础,是因为数组和内存的物理构造是一样的。

栈、队列以及环形缓冲区
栈对内存数据进行读写时,使用的是LIFO(后入先出)方式,当我们需要暂时舍弃当前的数据,随后再原貌还原时,使用栈来达到临时保存数据的目的。
队列对内存数据进行读写时,使用的是FIFO(先入先出)方式,队列一般是以环形缓冲区的方式来实现的。

链表和二叉查找树
链表高效对数组元素进行追加和删除

二叉查找树更加高效对数组数据进行检索。

这就是本章所学内容,下章见!

posted @ 2024-02-20 16:10  睡觉艺术家  阅读(14)  评论(0)    收藏  举报