Java中的静态方法和静态变量存储在哪里?

145

例如:

class A {
    static int i=0;
    static int j;

   static void method() {
       // static k=0; can't use static for local variables only final is permitted
       // static int L;
    }
}

这些变量会被存储在Java中的堆内存还是栈内存中?它们是如何存储的?

3
Oracle官方网站上非常有用的链接,可以帮助理解垃圾回收:http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html。 - Arnav Joshi
11个回答

0

从Java 8开始,PermGen空间已经过时。静态方法、基本类型和引用变量存储在Java MetaSpace中。实际对象驻留在JAVA堆中。由于静态方法永远不会超出引用范围,因此它们既不会从MetaSpace也不会从HEAP进行垃圾回收。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接