這個問題,一直困擾着我,平時的工做與學習也不多關注,就算關注了,基本也會忘記,今天又看了一遍,寫點記錄吧。java
1.堆棧都是一種數據項按序排列的數據結構,只能在一端(稱爲棧頂(top))對數據項進行插入和刪除。要點:堆,順序隨意。棧,後進先出(Last-In/First-Out)。 數據結構
2.堆和棧的區別能夠用以下的比喻來看出:使用棧就象咱們去飯館裏吃飯,只管點菜(發出申請)、付錢、和吃(使用),吃飽了就走,沒必要理會切菜、洗菜等準備工做和洗碗、刷鍋等掃尾工做,他的好處是快捷,可是自由度小。使用堆就象是本身動手作喜歡吃的菜餚,比較麻煩,可是比較符合本身的口味,並且自由度大。學習
3.在java中方法裏定義的變量,存儲在棧內存,當方法結束時,自動銷燬。而new的對象是存儲在堆內存裏的,不會隨方法結束而銷燬,除非沒有被另外的引用變量引用,會在被JVM在適當的時候回收。spa
(注:參考別人的文字,本身copy總結的)對象