在Java中,内存中的类函数放在哪里?

时间:2010-04-14 15:54:14

标签: java memory

在java中,内存中的类函数放在哪里?

2 个答案:

答案 0 :(得分:3)

取决于实施。通常你不应该担心Java中的这些东西。 “虚拟机”的整个概念就是抽象出这样的东西。现在我假设函数存储在接近字节码的某个地方,但是如果你的VM支持JIT,那么它们可以在任何地方......

我想我们可以说“在堆上”......大声笑

说实话,我想不出你需要知道这一点的一个原因,并想到你可能试图用它来吓唬我。

答案 1 :(得分:3)

JVM规范暗示它是堆的一部分:

  

3.5.4方法区

     

Java虚拟机有一个方法   所有Java共享的区域   虚拟机线程。方法   区域类似于存储区域   用于传统的编译代码   语言或类似于“文本”   UNIX进程中的段。它存储   每类结构如   运行时常量池,字段和   方法数据和方法的代码   和构造函数,包括   课堂上使用的特殊方法(§3.9)   和实例初始化和   接口类型初始化。该   方法区域是在虚拟上创建的   机器启动。虽然方法   区域在逻辑上是堆的一部分,   简单的实现可能不会选择   无论是垃圾收集还是紧凑   它。这个版本的Java虚拟   机器规格没有强制要求   方法区域的位置或   用于管理已编译代码的策略。   方法区域可以是固定大小的   或者可以按照要求进行扩展   计算,如果a,可以签约   更大的方法区域变成   不必要。该方法的内存   区域不需要连续。

参考:The JavaTM Virtual Machine Specification