这个问题,一直困扰着我,平时的工做与学习也不多关注,就算关注了,基本也会忘记,今天又看了一遍,写点记录吧。java
1.堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。要点:堆,顺序随意。栈,后进先出(Last-In/First-Out)。 数据结构
2.堆和栈的区别能够用以下的比喻来看出:使用栈就象咱们去饭馆里吃饭,只管点菜(发出申请)、付钱、和吃(使用),吃饱了就走,没必要理会切菜、洗菜等准备工做和洗碗、刷锅等扫尾工做,他的好处是快捷,可是自由度小。使用堆就象是本身动手作喜欢吃的菜肴,比较麻烦,可是比较符合本身的口味,并且自由度大。学习
3.在java中方法里定义的变量,存储在栈内存,当方法结束时,自动销毁。而new的对象是存储在堆内存里的,不会随方法结束而销毁,除非没有被另外的引用变量引用,会在被JVM在适当的时候回收。spa
(注:参考别人的文字,本身copy总结的)对象