关于java:为什么在我们在某些语言中使用它之前需要声明变量,而在其他语言中却没有?

Why do we need to declare the variable before we use it in some languages, but not in others?

Python与Java中的变量声明如何分配内存?如果没有编译步骤,解释语言如何知道变量需要多少内存?


在可用之前,变量必须分配一个内存位置,然后初始化——无论是在爪哇、Python,甚至是LOGO。

声明意味着使用特定的代码片段使该变量生成器(以Java为例)

1
2
int i;
Person p;

它们是声明的,但没有初始化。它们现在被分配到内存中的一个位置——在某些语言中,这个位置和大小可能会不断变化。但是不管怎样,现在内存中有一些物理位置,运行时环境可以查询这些物理位置来检索变量(或者间接指向它的指针,或者实际位置本身)。

既然它有一个空的"框",那么它必须被填充,也就是说它必须被"初始化":

1
2
i = 3;
p = new Person();

现在盒子里有些具体的东西。它可以使用了。在初始化之前尝试使用它将在EDCOX1(0)中产生(在爪哇中)。

有些语言要求您声明变量,以便显式地为其分配内存(位置和/或大小)。有些语言为您分配内存。正如对你的问题和这个答案的评论所述,有很多变化。