<分区>
在 Python 和 Java 中如何为变量声明分配内存?如果没有编译步骤,解释型语言如何知道变量需要多少内存?
<分区>
在 Python 和 Java 中如何为变量声明分配内存?如果没有编译步骤,解释型语言如何知道变量需要多少内存?
最佳答案
在可用之前,必须为变量分配一个内存位置,然后对其进行初始化——无论是在Java 中。 , Python ,甚至 Logo .
声明意味着您通过特定的代码片段使该变量变得生动,(以 Java 为例)类似
int i;
Person p;
这些已声明,但未初始化。它们现在在内存中分配了一个位置——在某些语言中,这个位置可能在位置和大小上不断变化。但无论如何,现在内存中有一些物理位置可供运行时环境查询,以检索变量(指向它的间接指针或实际位置本身)。
既然它有一个空的“盒子”可以去,它必须被填充,也就是说它必须被“初始化”:
i = 3;
p = new Person();
现在盒子里有一些具体的东西。它可以使用了。在初始化之前尝试使用它会导致(在 Java 中)NullPointerException
。
某些语言要求您声明变量,以便为其显式分配内存(位置和/或大小)。有些语言会为您进行内存分配。正如对您的问题和此答案的评论中所述,存在很多差异。
关于java - 为什么我们需要在某些语言中使用它之前声明变量,而在其他语言中则不需要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23090669/