深入JVM之方法調用是如何導致線程棧內存溢出的?

java.lang.StackOverflowError棧內存溢出是進行復雜運算時非常容易出現的錯誤

 

棧:

1、每個線程的虛擬機棧的大小是固定的,默認爲1MB。2、每次線程調用一個方法,都會將本次方法調用的棧楨壓入虛擬機棧裏,這個棧楨裏保存着方法內部的局部變量和其他信息。

棧內存溢出:

1、既然一個線程的虛擬機棧內存大小是有限的,那麼假設不停的調用各種方法,對應的棧楨不停的壓入棧中。

2、大量的棧楨會消耗完畢這個1MB的線程棧內存,最終就會導致出現棧內存溢出的情況。

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