【问题标题】:Static fields and methods [duplicate]静态字段和方法[重复]
【发布时间】:2011-09-23 04:12:39
【问题描述】:

可能重复:
Java: where do static fields live within the memory?

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

静态字段 --

静态方法 --

【问题讨论】:

    标签: java jakarta-ee


    【解决方案1】:

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

    【讨论】:

    • 我听到的是,如果我们在方法 A() 中调用方法 B()。方法 B() 存储在堆栈中 A() 的顶部。是假的吗?
    • 这是关于A()B() 中使用的局部变量 的真实陈述;方法本身并非如此。当你调用一个方法时,堆栈上会为它的局部变量留出空间;这样一个方法可以调用自己,并且每个调用都有自己的一组私有局部变量。这与方法(代码?)本身的存储位置无关。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    • 2018-04-29
    • 1970-01-01
    • 1970-01-01
    • 2011-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多