首页 > 代码库 > JVM 内存管理
JVM 内存管理
最近闲着没事又拿起《深入理解JAVA虚拟机》拜读了一遍。对JVM的理解更深了,今天先总结一下JVM内存的结构。
JVM 内存分为几个区域:
- 程序计数器
- 虚拟机栈
- 本地方法栈
- 方法区
- 堆
其中程序计数器,虚拟机栈,本地方法栈是线程私有的。 方法区和堆是线程共享的。
程序计数器
程序计数器是一小块内存空间,存储着当前线程所执行的字节码的行号。
虚拟机栈
JAVA的方法都在虚拟机栈上执行,每个线程都会有一个独立的虚拟机栈。每个方法执行的时候都会创建一个栈桢,栈桢存储着局部变量表,操作数栈,动态链接以及方法出口信息。局部变量表储存着8种基础类型的数据和对象引用。
本地方法栈
本地方法栈用来执行本地方法。需要注意的是oracle的JVM本地方法栈和虚拟机栈是同一个。
方法区
方法区用来储存类信息,常量和静态变量等信息。通常所称的永久代就是指方法区。
堆
堆中存储着对象的实例。堆的结构比较复杂但是非常重要,垃圾回收主要是发生在堆上。
JVM 内存管理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。