【发布时间】:2011-09-23 04:12:39
【问题描述】:
Java 使用堆来保存对象和实例变量,使用栈来存储方法和局部变量。我想知道静态字段和方法存储在哪里。
静态字段 --
静态方法 --
【问题讨论】:
标签: java jakarta-ee
Java 使用堆来保存对象和实例变量,使用栈来存储方法和局部变量。我想知道静态字段和方法存储在哪里。
静态字段 --
静态方法 --
【问题讨论】:
标签: java jakarta-ee
您的问题本身包含一个错误:方法本身并未存储在您可以访问的任何地方;加载代码的地方有一个特殊的“方法空间”。静态字段存储在类定义中,这些定义存储在称为“PermGen 空间”的特殊堆区域中;与普通方法一样,静态方法不会存储在普通 Java 存储中。
【讨论】:
A() 和B() 中使用的局部变量 的真实陈述;方法本身并非如此。当你调用一个方法时,堆栈上会为它的局部变量留出空间;这样一个方法可以调用自己,并且每个调用都有自己的一组私有局部变量。这与方法(代码?)本身的存储位置无关。