看板 Soft_Job 關於我們 聯絡資訊
※ 引述《zanyking (最後的六年級生)》之銘言: : 我是一個Java Programmer,在前一間公司面試新人的時候開始,我會喜歡問一些 : 名詞解釋的問題,就是:那是什麼?什麼狀況會發生?發生了要如何解決? : 各位有寫Java的朋友,如果面試的時候被問到『請解釋什麼是StackOverFlowError : ?什麼情況會發生?該如何修正與預防?』各位會覺得? : (很難、太容易、適當、不適當、有鑒別度、沒鑒別度) : 目前我觀察的結果是: : 對剛入行沒多久的開發者來說,這題似乎很難。 先解釋stack好了 因為寫C一陣子, 所以這名詞還蠻熟悉的 這邊要從C來講比較容易懂 stack是local variable, function/method parameter and return address 存放的位置 所以function A call function B 之後 程式進入function B, 他的 local variable 的資料又放在哪, 就接在 function A的資料後面, function B再 call function C 那資料就會變成 [function A data] [function B data] [function C data] 所以很多人說無窮的遞迴會造成 stack overflow 就是這個道理 就題目來說 1. stack overflow error 就 stack 用超過了 2. 用太多層funtion call 跟 local variable 使用錯誤都會造成問題 3. 除了了解運作, 寫code需要建立一些原則來避免, 其實我也沒有想到特別的解法 有無鑑別度, 不清楚 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.87.131.226 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1435026965.A.0A2.html ※ 編輯: realmeat (219.87.131.226), 06/23/2015 10:37:56
futureq: 有時候把IDE設定值調大可能就解了。 06/23 20:35