类加载期间的内存分配

时间:2012-03-13 15:04:23

标签: java memory-management jvm classloader

  

可能重复:
  static allocation in java - heap, stack and permanent generation

希望了解JVM加载类时究竟发生了什么(在内存管理方面)。具体做法是:

  • 内存的哪一部分是加载/放置的实际类字节代码?
  • 内存的哪一部分是加载/放置的静态变量?
  • 内存的哪一部分是加载/放置的其他变量和方法?

1 个答案:

答案 0 :(得分:0)

首先,包含该类的字节数组被加载到PermGen中。

然后解析classes字节数组,并将一些解析的信息放入PermGen中。

然后类中的字符串被内化(并放入PermGen)。

初始化类时,所有静态变量实例都放在堆上。

当调用函数的频率高于给定阈值时,JIT编译函数的代码也会被放入PermGen中。

这应该是全部,AFAIK,但我不是JVM开发人员。