java内存区域
java内存区域如图所示
程序计数器:指示当前线程执行的位置(即当前执行行号字节码的地址),线程私有,当线程切换时就通过这个计数器确定继续执行的位置。
虚拟机栈:线程私有,生命周期和线程相同,主要作用是存放方法的信息,当调用一个方法时会在栈中存入一个封装好的栈帧,栈帧中包含
局部变量表(基本数据类型,引用)、动态链接、方法出口等。当在方法中调用另一个方法时,就会将当前方法执行环境保存到栈帧中,然后
将另一个方法栈帧入栈,方法执行完以后就会出栈。
本地方法栈:和虚拟机栈一样,唯一区别就是这里边是本地方法的栈帧(本地方法就是用别的语言编写的方法)。
堆:线程共享,虚拟机启动时创建,唯一目的就是存放对象实例,物理空间不连续,逻辑上连续,是垃圾回收主要管理的区域,也一般是分代的。
方法区:存储一些常量信息,线程共享,存放类加载信息,常量,静态变量,代码等

浙公网安备 33010602011771号