→ futureq: 有時候把IDE設定值調大可能就解了。 06/23 20:35
※ 引述《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