首页 > 编程语言 >读《程序是怎样跑起来的》第四章有感

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

时间:2024-02-20 16:24:53浏览次数:36  
标签:有感 程序 读写 数据类型 内存 数组 数据 第四章 指针

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

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

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

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

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

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

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

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

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

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

标签:有感,程序,读写,数据类型,内存,数组,数据,第四章,指针
From: https://www.cnblogs.com/zyk0915-/p/18023356

相关文章

  • 程序是怎么跑起来的第五章
    程序保存在存储设备中,通过有序地被读出来实现运行,这一机制被称为存储程序方式。计算机中主要的存储部件是内存和磁盘。存储在磁盘中的程序需要读入到内存后才能运行。磁盘缓存指的是把从磁盘中读出的数据存储到内存空间中的方式,把低速设备的数据保存在高速设备中,需要时可以直接将......
  • 《程序是怎样跑起来的》读后感——第五章 内存和磁盘的亲密关系
    在读了本书的第五章后,我首先了解了内存运行的条件:存储在磁盘中的程序只能被读取到内存中才能被运行。由前文得知计算机中主要的存储部件是内存和磁盘。而磁盘中存储的程序,必须要加载到内存后才能运行。这是因为,负责解析和运行程序内容的CPU,需要通过内部程序计数器来指定内存地址,然......
  • PowerShell 脚本来监视并自动重新启动崩溃或挂起的应用程序
    PowerShell脚本来监视并自动重新启动崩溃或挂起的应用程序。以下是一个简单的示例脚本,用于监视并重新启动特定的应用程序:powershellCopyCode#设置要监视的应用程序名称$applicationName="YourApplication.exe"#设置检测时间间隔(秒)$checkInterval=5#循环监视应用......
  • 《程序是怎样跑起来的》——第七章读后感
    一:1.一般来说,应用翟序的运行环境是指操作系统的美型以及爱作(CPU、内存等)的类型和性能指标。2.应用程序是为了在特定操作系统上运行而开发的。3.PCEW#Ubuntu,RHEL(RedHatEnterpriseLinux)$Linux发行版操作系统。4.只要针对不同的环境准备专用的Java虚拟机,就可以让相......
  • 《程序是怎样跑起来的》第七章的读后感
    又到了读书分享的时候,本篇分享《程序是怎样跑起来的》第七章的读后感,程序是在何种环境中运行的。操作系统加硬件等于程序的运行环境。同一类型的硬件可以选择安装多种操作系统。。例如,同样的在兼容机一个中,既可以安装Windows,也可以安装Linux等操作系统。从程序的运行环境这一角度......
  • 手动将一个java程序打包成jar包
    1.目录结构新建三个目录:bin,META-INF,src src目录下存放源码 META-INF目录下存放MANIFEST.MF bin目录下存放.class文件 2.编译源码javac-dbinsrc/DESUtil.java 3.在META-INF目录下新建MANIFEST.MF文件Manifest-Version:1.0Main-Class:DESUtilClass-......
  • Jupyter Notebook运行R程序安装过程释疑
    JupyterNotebook是一个开源的交互式笔记本环境,支持多种编程语言,包括Python和R。它被广泛应用于数据分析、机器学习、科学计算等领域。在JupyterNotebook中,用户可以结合编写文本、代码和可视化结果,以便于进行数据探索、模型开发以及结果展示。然而,随着项目的进展,往往需要对......
  • uniapp编译成微信小程序报错-Component is not found in path "components/canvaspage
     问题:我需要将components/canvaspagebg/index引入进pages/index/index   报错了pages/index/index页面引入: uni-app程序编译成微信小程序后,组件无法显示,控制台报错,错误信息为: 我查看了路径,是对的看网上的解决办法就是 我取消勾选后刷新页面就可以了,此时我在选中......
  • 第十章:通过汇编语言了解程序的实际构成
    在阅读《程序是怎样跑起来的》这本书的第十章后,我对汇编语言有了更深入的了解,同时也对程序的实际构成有了更清晰的认识。这一章主要围绕汇编语言展开,介绍了汇编语言与本地代码之间的密切关系,并通过具体的例子展示了汇编语言的基本指令和语法结构。通过汇编语言编写的指令可以被转......
  • 《程序是怎样跑起来的》第五章
    这一章详细阐述了程序的编译、链接和运行过程,以及操作系统是如何管理和调度程序的。在阅读过程中,我最为印象深刻的是编译和链接的过程。源代码经过编译器的处理后,转化成了机器码,而链接器则将这些机器码和所需的库文件链接在一起,形成了可执行文件。此外,我还了解到了操作系统的进......