例如:
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中的堆内存还是栈内存中?它们是如何存储的?
例如:
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 8开始,PermGen空间已经过时。静态方法、基本类型和引用变量存储在Java MetaSpace中。实际对象驻留在JAVA堆中。由于静态方法永远不会超出引用范围,因此它们既不会从MetaSpace也不会从HEAP进行垃圾回收。