不知道楼主指的是数据结构的堆和栈还是操作系统中的堆和栈。
我这里还是浅浅地解释一下数据结构的吧~
记住的要点:①堆,列队优先,先进后出 。②栈,后进先出(Last-In/First-Out)。
要点①理解技巧:
理解成这个是一个盘子叠起来的,为了方便和安全,肯定是从最上面的开始拿,所以就导致了先叠上去的是后面拿出来的,不能中间抽取。
要点②理解技巧:可以理解成你在吃可比克薯片,按照常规,你应该是先吃后面的。
栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共享,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。
详见百度百科:http://baike.baidu.com/link?url=lxi-i9RpsN_GBZnSn-zfA8bS1K9KykeUjlEhq1kLpvvIfWf4aL0loXl9OPOD9rLs
求版主给技术分!早日进黑马! |