内存寻址和变量

1,172 阅读2分钟

让我们想象一下 Excel 软件大家都知道 Excel 软件。Excel 表格由单元格组成。每个单元格都有自己的唯一标识符 (A1、A2、…B1、B2)。如果你知道某一单元格的标识符,就总是可以向其中写入一些值,或者获取存储在其中的任何值。计算机内存的组织方式也与此非常相似。

“程序运行时,程序和程序数据存储在内存中。所有的计算机内存都被分成小单元或字节。每个单元都有一个与之关联的唯一的标识符或编号:0、1、2、3、……(编号从 0 开始)。如果你知道某一单元的编号,那么你就可以将数据保存在其中。或者从中获取数据。有些单元会存储程序的代码,即处理器的命令集。其他单元会存储程序所使用的数据。每个单元的编号称为其地址。”

“处理器知道如何执行加载到内存中的命令。几乎所有的处理器命令都类似于‘从某些单元中获取数据,对其执行某些操作,然后将结果发送给其他单元’。我们将数百个简单的命令组合起来,得到一些复杂而有用的命令。”

“但我为什么需要这些命令呢?”

“当在代码中声明变量时,系统会为其分配一些尚未使用的内存。这通常是几个字节。声明变量时需要指明程序将存储在其中的信息类型:数字、文本或其他数据。为方便起见,为每个变量分配一个唯一的名称。”

“这是否意味着一个变量是一个名称、类型、内存的一部分,也是一个值?”

“它将所有这些都融合在一起。让我们来看一些例子:”

img

几百万数据放入内存不会把系统撑爆吗?

面试官:聊聊微信和淘宝扫码登录背后的实现原理?

SpringBoot 项目构建 Docker 镜像深度调优

CentOS7 安装 Maven

Spring Cache 操作 Redis 实现数据缓存(下)

Spring Cache 操作 Redis 实现数据缓存(上)

● Java人应该知道的SpringBoot For Kafka (上)

Java人应该知道的SpringBoot For Kafka (下)

SpringBoot 多种读取配置文件中参数的方式

SpringBoot 操作 ElasticSearch 详解

SpringBoot 使用 Caffeine 本地缓存

本文由博客一文多发平台 OpenWrite 发布!