# 三、堆空间
**基本描述**
JVM启动时创建堆区,是内存管理的核心区,通常情况下也是最大的内存空间,是被所有线程共享的,几乎所有的对象实例都要在堆中分配内存,所以这里也是
垃圾回收的重点空间。
**堆栈关系**

栈是JVM运行时的单位,堆是存储单位,当栈中
方法结束,相关对象失去所有引用后,不会马上被移除堆空间,要等到
垃圾收集器运行的时候。
# 四、虚拟机栈
虚拟机栈(Java栈)在每个线程创建时都会
生成一个虚拟机栈,栈的内部是
一个个栈帧单元,对应Java
方法的
调用,其生命周期和线程周期保持一致。用来存储
方法的局部遍历,部分执行结果,
方法的
调用和返回。

栈帧是
方法执行的数据集,维持执行过程中的各种数据信息,执行的
方法依次入栈,栈顶存放当前要执行的
方法,执行结束后出栈,对于栈没有
垃圾回收问题。
# 五、程序计数器
**基本描述**
JVM中程序计数寄存器用来存储下一条将要执行指令的地址,执行引擎
获取到指令后进行执行,是线程私有的。它可以看作是当前线程所执行的字节码的行号指示器。

**前后关系**
线程在
获取cpu的时间段内执行
代码,但是线程随时可能没有执行完就被挂起,等到线程A再次
获取cpu执行时,
cpu 得知道执行到线程A的哪
一个指令,程序计数器会存储该动作。
# 六、本地
方法栈
本地
方法栈与虚拟机栈所起到的作用是类似的,虚拟机栈为虚拟机执行Java
方法,本地
方法栈管理虚拟机使用到的 本地
方法,在虚拟机规范中对本地
方法栈中
方法使用的语言、使用方式与数据结构并没有强制规定,因此具体的虚拟机可以自由实现它。HotSpot虚拟机直接就把本地
方法栈和虚拟机栈合二为一。
# 最后
本人也收藏了一份Java面试核心知识点来应付面试,借着这次机会可以免费送给我的读者朋友们
**目录:**

Java面试核心知识点
**一共有30个专题,足够读者朋友们应付面试啦,也节省朋友们去到处搜刮资料自己整理的时间**

Java面试核心知识点
**已经有读者朋友靠着这一份Java面试知识点指导拿到不错的offer了,各位读者朋友们快来免费
获取吧**

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。