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

为什么Java中不允许使用静态局部变量?,java,Java,我尝试使用这样一个变量,但它给了我一个让我吃惊的错误。四处寻找答案,因为这对我来说毫无意义。想知道这背后是否有安全原因或其他原因 方法中声明的任何变量都应该是该方法的本地变量。它存储在JVM的方法堆栈中,即每个线程一个。当您使用static关键字时,根据规则,当静态变量作用域或可见于整个类时,根据常识,局部变量如何声明为静态,则表示该变量对于类的所有对象都是通用的。局部变量作用域位于声明它的方法内。如果局部变量声明为static,则static的含义将丢失。如果局部变量是静态的,则忽略静态变量的

我尝试使用这样一个变量,但它给了我一个让我吃惊的错误。四处寻找答案,因为这对我来说毫无意义。想知道这背后是否有安全原因或其他原因

方法中声明的任何变量都应该是该方法的本地变量。它存储在JVM的方法堆栈中,即每个线程一个。当您使用static关键字时,根据规则,当静态变量作用域或可见于整个类时,根据常识,局部变量如何声明为静态,则表示该变量对于类的所有对象都是通用的。局部变量作用域位于声明它的方法内。如果局部变量声明为static,则static的含义将丢失。如果局部变量是静态的,则忽略静态变量的用途。由于这个原因,编译器不允许静态局部变量

静态变量在程序执行开始时实例化

当创建变量的方法中的代码行被执行时,局部变量被实例化,并且仅在方法执行期间持续


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

为什么需要静态局部变量?你这是什么意思?给我看看你的代码我很确定这会破坏静态的目的。你尝试了什么?你收到了什么错误?请提供MCVE@DePuh——我不确定我们是否需要一个MCVE来告诉OP静态的局部不存在。C和C++在类之外有功能。Java没有。在C/C++中使用静态局部变量可以做的任何事情,都可以在Java中使用静态类变量。谢谢。。你的帮助很大