Stack overview
Stack 是一種資料結構,主要特點是先進後出,因此可以拿來當遞迴的工具,
順便一提,從 memory 角度來看一個程式執行時分成 heap memory & stack memory,
Heap memory 是 new 出來的物件存放地,例如 new int[100]
Stack memory 是存放區域變數、函式參數、函數返回位置、reference等等
Stack memory是系統可以預期的變數存放地,讓系統有效的回收,例如在某函數裡的區域變數,
出了函數就銷毀,那麼放進stack可以有效率的管理
相反的,heap memory 則是不可預期的變數存放地