1. 程式人生 > >說說java棧溢位那些事兒

說說java棧溢位那些事兒

今天寫了一個bug導致出現了棧溢位,出現棧溢位的根本原因是出現了無限次的遞迴,遞迴巢狀的層次太多,方法進棧次數太多,導致棧區不足出現StackOverFlow,寫程式碼以來第一次出現這種bug,幸虧自己之前對這方面有了解,解決的還算及時,同時這個bug也讓我體會到,寫程式碼真的是要處處小心,其實當時寫的時候,我就已經意識到,某段程式碼處可能會出現無數次迭代的情況,但是考慮到程式應該會正常執行,正常情況下應該不會出現此問題,所以自己也就懈怠了,沒有想太多,結果今天測試的時候,竟然還真出現了。在今天出現的程式中,其實出現棧溢位是因為專案出現了不正常的資料,導致方法的條件永遠不能滿足,一直在進行遞迴呼叫,幸虧程式的錯誤提示,提示的比較清晰,讓我立馬定位到了相關程式碼,今天的bug又讓我想到了,程式設計領域那個亙谷不變的真理,寫程式碼不能只考慮正常的情況,更多的應該是對錯誤情況的處理,的確,往往程式都是這樣的,正常執行的時候,好像感覺也沒什麼,但一旦出錯,如果定位不到錯誤程式碼,往往會消耗更多的精力,所以,請珍愛生命,遠離bug。