Java-静态方法中的局部变量

Java-静态方法中的局部变量,java,static,Java,Static,由于在静态方法中,我们: 无法对非静态字段进行静态引用 那么静态方法中的局部变量应该是静态的 好 但根据这里的答案: 静态方法中的局部变量只是静态方法中的局部变量。它们不是静态的,它们在任何方面都不是特别的。 我的推论2和欧内斯特回答3中的陈述有冲突,我无法解释 有人能解释一下我的推断是否错了,为什么? 如果我没有错的话,这个问题的正确答案是什么?静态方法中的局部变量也是静态的吗 编辑:我没有被什么是局部变量、成员变量字段或静态变量弄糊涂 我只是想: 如果静态方法不能引用非静态字段,并且字段是变

由于在静态方法中,我们:

无法对非静态字段进行静态引用 那么静态方法中的局部变量应该是静态的 好 但根据这里的答案:

静态方法中的局部变量只是静态方法中的局部变量。它们不是静态的,它们在任何方面都不是特别的。 我的推论2和欧内斯特回答3中的陈述有冲突,我无法解释

有人能解释一下我的推断是否错了,为什么? 如果我没有错的话,这个问题的正确答案是什么?静态方法中的局部变量也是静态的吗

编辑:我没有被什么是局部变量、成员变量字段或静态变量弄糊涂

我只是想: 如果静态方法不能引用非静态字段,并且字段是变量 那么静态方法中的变量也是静态的 在静态方法中生成局部和静态变量

谢谢。

静态方法无法引用字段,因为它属于类的实例,因此超出了静态方法的范围

局部变量从来都不是静态的。通过局部变量,可以理解代码块中声明和使用的变量,无论该代码块是静态初始值设定项、类初始值设定项还是方法/构造函数体。当然,这些变量的范围是由声明它们的代码块决定的


不要与类字段中声明的变量混合,无论它们是非静态的实例变量;每个实例或类静态变量一个;每个类一个。

局部变量不是字段。

例外情况中的简单冲突是您希望局部变量是字段。但事实并非如此

局部变量只存在于方法中。不管这个方法是私有的、公共的、静态的、最终的还是其他的

当字段与对象实例共存时

一个静态场与类共存

方法中声明的变量位于堆栈上。这些被称为局部变量 声明为静态的变量在类中活动。这些被称为类变量。虽然它们通常被称为静态变量 类中声明为非静态的变量在特定实例中存在。这些被称为实例变量。
基本上,每次输入静态或非静态方法时,都会为该块中声明的每个变量保留内存。当该块退出时,将释放该内存。退出方法,或退出{}块。局部变量的寿命始终是您在其中声明它们的块。

为什么您认为局部变量是静态的?似乎您需要检查@immibis不要忘记,单词字段只是用于描述成员变量的命名约定。所以字段是变量类型,就像局部变量是变量类型一样。当然,它们不是同一类型。@Xipo不要忘记,短语成员变量只是一种命名约定,用于用Java以外的一些语言描述字段。@immibis我同意你的看法,我唯一想指出的是字段是变量。@Xipo你暗示过:不能对非静态字段进行静态引用>>那么静态方法中的局部变量也应该是静态的。这是我至少理解的。好吧,我明白了,我只是说我是字面意思,没有任何暗示。我解释自己。