java虚拟机内存模型
-
如下图:
1、堆(heep): 此内存区域唯一的目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。java虚拟机规范中描述的是:所有的对象实例以及数组都要在堆上分配。 2、栈(stack),指虚拟机栈。用于存储局部变量表等。局部变量表存放了编译期可知长度的各种基本数据类型(boolean、byte、char、short、int、float、long、double)、对象引用(reference类型,它不等同于对象本身,是对象在堆内存的首地址)。 方法执行完,自动释放。 3、方法区(Method Area),用于存储已被虚拟机加载的类信息、常量、静态变量、及时编译器编译后的代码等数据。