黑马程序员技术交流社区
标题:
应该怎样从使用层面理解堆和栈?
[打印本页]
作者:
张校云
时间:
2011-10-7 00:22
标题:
应该怎样从使用层面理解堆和栈?
应该怎样从使用层面理解堆和栈?求详解
作者:
宁超
时间:
2011-10-7 00:38
本帖最后由 宁超 于 2011-10-7 00:39 编辑
堆和栈的区别可以用如下的比喻来看出:
使用栈就象我们去饭馆里吃饭,只管点菜(发出申请)、付钱、和吃(使用),吃饱了就
走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自
由度小。
使用堆就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由
度大。
建议你看下
http://www.blogjava.net/ITdavid/archive/2008/01/16/175679.html
作者:
林国锋
时间:
2011-10-7 00:41
最简单的理解
堆:顺序随意
栈:先进后出
堆和栈都是JAVA在内存存放数据的地方
堆的存取速度就慢些
栈的存取速度就快些
通过new()来建立的对象就会存放在
堆中
String str = "abc";这种方法会先在
栈中
创建一个对String类的对象引用变量str,然后查找栈中有没有存放"abc",如果没有,则将"abc"存放进栈,并令str指向”abc”,如果已经有”abc” 则直接令str指向“abc”。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2