静态变量和常量,存储在静态存储区。常常是比较低的内存区开始,如000
堆:new的时候所存储的,会被GC。堆是动态的,堆的地址随着储存的东西越来越大,是向下走的,即地址越来越大。比如一开始是2000,然后如果程序要求新的内存,于是变成2004,2008。
栈:存储函数的局部变量和参数。当函数结束时内存会被回收。栈通常是从很高的位置开始。然后是向上走,地址越来越小。
那么堆和栈会不会有朝一日重叠呢?的确有可能,但现在几乎不会。一旦重叠了,程序就挂了。