深入JVM之方法调用是如何导致线程栈内存溢出的?

java.lang.StackOverflowError栈内存溢出是进行复杂运算时非常容易出现的错误

 

栈:

1、每个线程的虚拟机栈的大小是固定的,默认为1MB。2、每次线程调用一个方法,都会将本次方法调用的栈桢压入虚拟机栈里,这个栈桢里保存着方法内部的局部变量和其他信息。

栈内存溢出:

1、既然一个线程的虚拟机栈内存大小是有限的,那么假设不停的调用各种方法,对应的栈桢不停的压入栈中。

2、大量的栈桢会消耗完毕这个1MB的线程栈内存,最终就会导致出现栈内存溢出的情况。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章