CodeGym大学课程体系中包括讲师在线讲座的部分视频。赶快报名吧


“又是我的疏忽。我忘了介绍一些内容。现在我要告诉你有关变量和内存寻址的内容。我们不会讲得太深,但如果你能记住一些内容,那就太好了。”

“我喜欢你上课的方式:如果你理解了某些东西,那就太棒了。如果你什么都没听懂,那也没关系。”

“爱情不能强求。这是显而易见的。在你们的星球上不是这样吗?”

“不,我们有不同的方法。如果你愿意学习的话,那么就去学习吧;如果你不愿意学习的话,那么你也要去学习,尽管你并不情愿。”

“多么落后的学习方法啊!”这浪费了大量的精力和时间,结果却很糟糕。”

“我们完全在浪费。但我们不要谈论悲伤的事情了。”

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

image-zho-CN-01-25

“到目前为止,我一直在关注你。”

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

“教授已经给我讲过处理器和命令的内容了,但没有讲得很详细。”

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

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

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

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

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

代码 说明
1
String s;
该行创建一个变量,其名称为 s。我们将其声明为 String,因为它将用于存储文本。
我们不能在同一个函数或类中声明另一个具有相同名称的变量。
2
String s2 = "I'm Diego";
该行创建了一个 String 变量,其名称为 s2,并立即赋值为"I'm Diego"
3
int a;
此处我们创建了一个变量,其名称为 a。其数据类型与将存储在其中的内容相匹配。int 数据类型是整数这个词的缩写形式。
4
int b = 4;
我们创建了一个变量,其名称为 b。它的数据类型 (int) 用于存储整数。数值 4 立即被分配给该变量。

“下面是迭戈提供的一些任务:一次做一点。”