Java虚拟机
Java虚拟机拥有用于存储对象及数组的垃圾回收堆。代码、常量及其他类数据均存储于“方法区”中。方法区逻辑上是堆的一部分，但虚拟机的实现可能会区分两者，从而可能不对方法区进行垃圾回收。每个Java虚拟机线程均有其自己的调用栈（Java虚拟机栈），用于存储帧。当调用方法时，Java虚拟机将新建一个帧；方法退出时，帧将自动消除。