初识JVM堆栈

Posted zomicc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识JVM堆栈相关的知识,希望对你有一定的参考价值。

 

  最近看到浅拷贝与深拷贝的区别。联想到了对象的存储形式,即堆内存。

  故如下主要针对java虚拟机中的堆内存栈内存做下简单学习:

  技术图片

  堆内存也叫运行时内存,是程序运行期间动态占用的一块内存,也是jvm中主要关注的一块内存。

 

  引申:堆溢出与栈溢出的区别?代码分别测试下。

  提示-->由于堆内存存储的是对象,所以在程序运行期间如果能够无限创建对象或数组而未被GC及时回收,就可以导致堆内存溢出

     同理,一个方法内部,无限创建变量(入栈)即可导致栈内存溢出。如:递归调用。

以上是关于初识JVM堆栈的主要内容,如果未能解决你的问题,请参考以下文章

reverse逆向4 初识堆栈

JVM 啥时候开始忽略堆栈跟踪?

自定义 JVM 语言:创建可行的堆栈跟踪?

在JAVA中以编程方式监视JVM的堆栈区域? [复制]

为啥jvm在推入堆栈之前将字节和短扩展为int?

JVM_02 堆栈 方法区概念和联系