java内存管理学习笔记

java运行是以线程为单位,所以内存可以划分为所有线程共享的内存以及线程隔离的内存两部分:

 

1.线程共享的内存分为方法区和堆

  a.堆:虚拟机管理的最大的内存区域,存放基本所有的对象实例以及数组

  b.方法区:存放已被虚拟机加载的类信息、常量、静态变量、运行时常量池等

 

2.线程隔离的内存区域包括程序计数器、虚拟机栈和本地方法栈

  a.程序计数器:线程执行字节码的行号指示器,分支、循环、跳转、异常处理和线程恢复等功能都需要依赖它完成

  b.虚拟机栈:用于存储方法的局部变量表、操作数栈、动态链接和方法出口

  c.本地方法栈:类似于虚拟机栈,用于存储本地方法的信息

 

posted @ 2020-04-21 10:58  IAmSao瑞  阅读(123)  评论(0)    收藏  举报