Java内存区域模型

Java内存区域主要分为:堆,栈,方法区三大部分

1、堆:是内存区域中最大的部分,所有线程共享,其中存放创建的对象和数组。由于堆是垃圾收集器管理的主要区域,因此也叫GC堆。

2、栈:线程私有,与线程共生死。也就是每个线程JVM都会给它创建一片栈内存。

  栈内存又分为:虚拟机栈,本地方法栈,和程序计数器

  虚拟机栈:用来描述Java方法的执行过程。每个方法的执行对应一个栈帧的入栈,方法的返回对应栈帧的出栈。

  本地方法栈:与虚拟机栈类似,区别是本地方法栈尾Native方法服务。Native方法也就是非Java代码的方法,一般是底层的C/C++方法

  程序计数器:占用的空间很小,用来记录线程执行的字节码的行号指示器,通俗来讲,就是记录当前线程执行的位置,以便线程切换后能够恢复到原来的位置

3、方法区:也被称为永久代,其中主要存放常量、静态变量、类信息。其中的常量存放于运行时常量池中

[ 版权声明 ]: 本文所有权归作者本人,文中参考的部分已经做了标记! 商业用途转载请联系作者授权! 非商业用途转载,请标明本文链接及出处!
原文地址:https://www.cnblogs.com/gslgb/p/14820927.html