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

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

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

**前后关系**
线程在
获取cpu的时间段内执行
代码,但是线程随时可能没有执行完就被挂起,等到线程A再次
获取cpu执行时,
cpu 得知道执行到线程A的哪
一个指令,程序计数器会存储该动作。
# 六、本地
方法栈
本地
方法栈与虚拟机栈所起到的作用是类似的,虚拟机栈为虚拟机执行Java
方法,本地
方法栈管理虚拟机使用到的 本地
方法,在虚拟机规范中对本地
方法栈中
方法使用的语言、使用方式与数据结构并没有强制规定,因此具体的虚拟机可以自由实现它。HotSpot虚拟机直接就把本地
方法栈和虚拟机栈合二为一。
### 最后
**给读者们
一个小福利,有需要这些资料的朋友们[可以点击我,即可免费](https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB)领取资料!**
### ActiveMQ消息中间件面试专题
* 什么是ActiveMQ?
* ActiveMQ服务器宕机怎么办?
* 丢消息怎么办?
* 持久化消息非常慢怎么办?
* 消息的不均匀消费怎么办?
* 死信队列怎么办?
* ActiveMQ中的消息重发时间间隔和重发
次数吗?
**ActiveMQ消息中间件面试专题解析拓展:**

* * *
# re
dis面试专题及答案
*
支持一致性哈希的客户端有哪些?
* Re
dis与其他key-value存储有什么不同?
* Re
dis的内存占用情况怎么样?
* 都有哪些办法可以降低Re
dis的内存使用情况呢?
* 查看Re
dis使用情况及状态信息用什么命令?
* Re
dis的内存用完了会发生什么?
* Re
dis是单线程的,如何提高多核
cpu的利用率?

* * *
# **Spring面试专题及答案**
* 谈谈你对 Spring 的理解
* Spring 有哪些优点?
* Spring 中的设计模式
* 怎样开启注解装配以及常用注解
* 简单介绍下 Spring bean 的生命周期
**Spring面试答案解析拓展**

* * *
# 高并发多线程面试专题
* 现在有线程 T1、T2 和 T3。你如何确保 T2 线程在 T1 之
后执行,并且 T3 线程在 T2 之
后执行?
* Java 中新的 Lock 接口相对于同步
代码块(synchronized block)有什么优势?如果让你实现
一个高
性能缓存,
支持并发读取和单一写入,你如何保证数据完整性。
* Java 中 wait 和 sleep
方法有什么区别?
* 如何在 Java 中实现
一个阻塞队列?
* 如何在 Java 中编写
代码解决生产者消费者问题?
* 写一段死锁
代码。你在 Java 中如何
解决死锁?
**高并发多线程面试解析与拓展**

* * *
# jvm面试专题与解析
* JVM 由哪些部分组成?
* JVM 内存划分?
* Java 的内存模型?
* 引用的
分类?
* GC什么时候开始?
**JVM面试专题解析与拓展!**

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