1
如何分配内存Java堆栈或堆中的静态变量和静态块?如何分配内存Java中的静态变量和静态块?
class A{
static int a;
static{}
public static void main(String args[]){
A h=new A();
}
}
当创建对象如何为静态堆栈或堆分配内存。
如何分配内存Java堆栈或堆中的静态变量和静态块?如何分配内存Java中的静态变量和静态块?
class A{
static int a;
static{}
public static void main(String args[]){
A h=new A();
}
}
当创建对象如何为静态堆栈或堆分配内存。
static
关键字在java中主要用于内存管理。我们可能会将static
关键字应用于变量,方法,块和嵌套类。关键字static
属于该类而不是该类的实例。
对于stactic
变量的内存分配仅在类加载到内存时发生一次。
所以,在这里,一旦类是由classloader
加载内存将被分配给整数和stacic块。
静态方法(实际上所有方法)以及静态变量都存储在堆的PermGen部分。
数据可能比创建它的过程调用时间更长,通常分配在堆上。例如。新创建可能从过程传递到过程的对象。 堆的大小不能在编译时确定。仅通过指针或引用(例如C++中的动态对象,Java中的所有对象)引用仅供参考,例如Java中的所有对象
过程的本地名称在堆栈上分配空间。堆栈的大小不能在编译时确定。
请参考下面的教程更多关于内存管理:http://www.oracle.com/technetwork/java/javase/memorymanagement-whitepaper-150215.pdf
我想知道堆栈或堆 – user2832497
我想知道的只是堆栈或堆 – user2832497
@ user2832497我编辑 –