为什么Java中不允许使用静态局部变量?

时间:2017-12-14 14:00:30

标签: java

我尝试使用这样的变量,但它给了我一个错误,这对我来说是令人惊讶的。寻找答案因为它对我没有意义。想知道是否有一些安全理由或背后的东西......

3 个答案:

答案 0 :(得分:0)

方法中声明的任何variable都应该是方法的本地。它存储在JVM的方法堆栈中,每个线程一个。当您使用static关键字时,表示此variable对于class的所有对象都是通用的

答案 1 :(得分:0)

根据规则,当静态变量作用域(或可见)是针对整个类时,根据常识,如何将局部变量声明为静态。局部变量范围在声明它的方法中。如果局部变量声明为static,则静态的含义将丢失。如果局部变量是静态的,则绕过静态变量的目的。因此,编译器不允许静态局部变量。

Source

答案 2 :(得分:0)

Static个变量在程序执行开始时被实例化。

当执行创建变量的方法内的代码行时,

Local变量被实例化,并且仅在方法执行期间持续。

方法声明中的关键字static违反了本地范围,因此不允许。