Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 静态场与方法_Java_Jakarta Ee - Fatal编程技术网

Java 静态场与方法

Java 静态场与方法,java,jakarta-ee,Java,Jakarta Ee,可能重复: Java使用堆来保存对象和实例变量,使用堆栈来存储方法和局部变量。我想知道静态字段和方法存储在哪里 静态场-- 静态方法--您的问题本身包含一个错误:方法本身没有存储在您可以访问的任何地方;加载的代码所在的位置有一个特殊的“方法空间”。静态字段存储在类定义中,类定义存储在称为“PermGen空间”的特殊堆区域中;静态方法和普通方法一样,不存储在普通Java存储中。我听说,如果我们在方法A()中调用方法B()。方法B()存储在堆栈中A()的顶部。这是假的吗?这是关于a()和B()中使

可能重复:

Java使用堆来保存对象和实例变量,使用堆栈来存储方法和局部变量。我想知道静态字段和方法存储在哪里

静态场--


静态方法--

您的问题本身包含一个错误:方法本身没有存储在您可以访问的任何地方;加载的代码所在的位置有一个特殊的“方法空间”。静态字段存储在类定义中,类定义存储在称为“PermGen空间”的特殊堆区域中;静态方法和普通方法一样,不存储在普通Java存储中。

我听说,如果我们在方法A()中调用方法B()。方法B()存储在堆栈中A()的顶部。这是假的吗?这是关于
a()
B()
中使用的局部变量的真实陈述;这些方法本身并不是真的。当您调用一个方法时,堆栈上会为其局部变量留出空间;这样,一个方法就可以调用它自己,并且每个调用都会得到它自己的私有局部变量集。这与方法(代码?)本身的存储位置无关。