2014-04-08 29 views

回答

1

static关键字在java中主要用于内存管理。我们可能会将static关键字应用于变量,方法,块和嵌套类。关键字static属于该类而不是该类的实例。

对于stactic变量的内存分配仅在类加载到内存时发生一次。

所以,在这里,一旦类是由classloader加载内存将被分配给整数和stacic块。

静态方法(实际上所有方法)以及静态变量都存储在堆的PermGen部分。

数据可能比创建它的过程调用时间更长,通常分配在堆上。例如。新创建可能从过程传递到过程的对象。 堆的大小不能在编译时确定。仅通过指针或引用(例如C++中的动态对象,Java中的所有对象)引用仅供参考,例如Java中的所有对象

过程的本地名称在堆栈上分配空间。堆栈的大小不能在编译时确定。

请参考下面的教程更多关于内存管理:http://www.oracle.com/technetwork/java/javase/memorymanagement-whitepaper-150215.pdf

+0

我想知道堆栈或堆 – user2832497

+0

我想知道的只是堆栈或堆 – user2832497

+0

@ user2832497我编辑 –