静态数组如何存储在 Java 内存中?
因此,在像C这样的语言中,内存分为5个不同的部分:操作系统内核,文本段,静态内存,动态内存和堆栈。像这样:
如果我们在C中声明了一个静态数组,你必须事先指定它的大小,然后它将永远固定。该程序将为数组分配足够的内存,并按预期将其粘贴到静态数据段中。
但是我注意到,在Java中,你可以做这样的事情:
public class Test {
static int[] a = new int[1];
public static void main( String[] args ) {
a = new int[2];
}
}
一切都会像你期望的那样工作。我的问题是,为什么这在Java中工作?
编辑:所以大家的共识是,Java中的a的行为更类似于C中的an。因此,作为后续问题,有没有办法在Java中的静态内存中分配数组(如果不是,为什么不呢)?这难道不能提供对此类数组的更快访问吗?EDIT2: ^ 这是现在一个新问题:静态类变量存储在内存中的位置?int[]
int*