如何在Python与Java中为变量声明分配内存?如果没有编译步骤,解释语言如何知道变量需要多少内存?
答案 0 :(得分:3)
在可用之前,必须为变量分配一个内存位置然后进行初始化 - 无论是Java,Python还是Logo。
声明意味着你使用特定的代码片段来生成该变量,并使用(以Java为例)
int i;
Person p;
这些是声明的,但未初始化。它们现在被分配在内存中的位置 - 在某些语言中,它们可能在位置和大小上都在不断变化。但无论如何,现在内存中存在一些物理位置,运行时环境可以查询,检索变量(指向它的间接指针或实际位置本身)。
现在它有一个空的“盒子”,它必须被填充,也就是说必须“初始化”:
i = 3;
p = new Person();
现在盒子里有一些具体的东西。它已经可以使用了。在初始化之前尝试使用它将在NullPointerException
中生成(在Java中)。
某些语言要求您声明变量,以便为其显式分配内存(位置和/或大小)。有些语言会为您执行此内存分配。正如您对问题和答案的评论中所述,存在很多变化。