概览图

0030-内存概述

1. 内存角色

内存中主要涉及到的角色有
方法区,堆,虚拟机栈,程序计数器,本地方法栈

1.1 方法区

方法区主要存储加载的class类元数据,包括类型信息,运行时常量池(不包含字符串常量),域信息,方法信息等

1.2 堆区

堆区又分为新生代和老年代,新生代又分为Eden,s0,s1区,是垃圾回收的重点区域,主要存储new出来的对象,还有几个特殊的对象,Class对象及内部的静态变量都在这边,字符串常量池

1.3 虚拟机栈

虚拟机栈主要负责方法的运行,加载栈帧,栈帧中含有指向方法区运行时常量池该方法的引用,在当前实际执行类型对象中寻找这个方法,若没有则在执行类型的父类中寻找,直到找到为止,找不到则抛出异常。栈帧是虚拟机栈中存储的对象,栈帧中包含局部变量表,操作数栈,动态链接,方法返回地址,附加信息

1.4 程序计数器

存储当前指令的地址,保证线程切换的时候可以准确找到执行位置

1.5 本地方法栈

和虚拟机栈类似,虚拟机栈执行的是java方法,本地方法栈执行的是非java方法

2. 线程共享性

  • 线程共享:堆区,方法区
  • 线程独有:程序计数器,虚拟机栈,本地方法栈

相关文章:

  • 2021-11-24
  • 2021-09-03
  • 2021-06-05
  • 2021-04-18
  • 2021-09-29
  • 2021-06-22
  • 2021-10-14
  • 2021-09-06
猜你喜欢
  • 2021-06-28
  • 2021-06-12
  • 2022-01-07
  • 2021-06-05
  • 2021-09-23
相关资源
相似解决方案