java内存区域

java内存区域如图所示

 

程序计数器:指示当前线程执行的位置(即当前执行行号字节码的地址),线程私有,当线程切换时就通过这个计数器确定继续执行的位置。

虚拟机栈:线程私有,生命周期和线程相同,主要作用是存放方法的信息,当调用一个方法时会在栈中存入一个封装好的栈帧,栈帧中包含

局部变量表(基本数据类型,引用)、动态链接、方法出口等。当在方法中调用另一个方法时,就会将当前方法执行环境保存到栈帧中,然后

将另一个方法栈帧入栈,方法执行完以后就会出栈。

本地方法栈:和虚拟机栈一样,唯一区别就是这里边是本地方法的栈帧(本地方法就是用别的语言编写的方法)。

堆:线程共享,虚拟机启动时创建,唯一目的就是存放对象实例,物理空间不连续,逻辑上连续,是垃圾回收主要管理的区域,也一般是分代的。

方法区:存储一些常量信息,线程共享,存放类加载信息,常量,静态变量,代码等

 

posted @ 2019-10-28 16:10  高鸣泽  阅读(77)  评论(0)    收藏  举报