A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© GKAirzzzzz 中级黑马   /  2017-2-19 12:26  /  1522 人查看  /  9 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

据说这是编程的基础,包括栈、队列、树、图、查找、排序等。争取每天解决一个小问题

9 个回复

倒序浏览
回复 使用道具 举报
java内存分堆内存和栈内存,一直不明白分这些做什么呢。。然后有一天突然认识到电脑里处处都是栈啊。栈就是为了保证一个舒适符合期望的用户体验。比如我浏览网页一堆,撤销时应该按我打开的顺序倒着退回去。一般变量名啊,对象名啊就会放在栈里,而对象里面的数据比如变量函数啦就会开辟一块堆内存,然后让对象名指向这块堆内存。。哈哈,这就是java里面的指针吧~~栈和堆,说白了,都是存储区域,只是操作原理和性质不同,为了方便理解和使用,人为加了这样的命名。。这些纯是个人理解,欢迎纠正和交流。
回复 使用道具 举报
就跟安卓的activity是一样的,全部放到栈里面,这样用户体验是很棒的
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
本帖最后由 GKAirzzzzz 于 2017-2-19 12:41 编辑

放一段摘抄,关于栈的理解。
栈是计算机术语中比较重要的概念,实质上栈就是一段内存区域,但是栈满足一定的特性,那就是只有一个口,具有先入后出的特性,这种特性在计算机中有很广泛的运用。其实在程序员无时无刻不在运用栈,函数的调用是我们间接使用栈的最好例子,因此可以说栈的一个最重要的运用就是函数的调用。但是栈的运用还不止这些,还有很多,其中几个典型的运行如下:判断平衡符号,实现表达式的求值(也就是中缀表达式转后缀表达式的问题以及后缀表达式求值问题),在路径探索中实现路径的保存也可以说是栈的经典运用之一。具体的问题具体分析,只要满足先入后出特性的问题都能找到现成的数据结构---栈。
在函数调用中,如果不保存调用程序的状态,在被调用程序中就会修改程序的状态,这时候也就不能还原到之前的状态,只有将当前的状态保存起来,压入栈中,当被调用程序执行完成以后,将当前程序栈中的内容弹出就能实现任务状态的还原,当前函数执行完成以后,调用该函数的状态也需要还原。这时候就实现了先调用的函数最后执行,所以说函数调用是典型的先入后出问题。这也说明为什么栈如此的重要。
原文:http://blog.chinaunix.net/uid-20937170-id-3322943.html
回复 使用道具 举报
回复 使用道具 举报
烟雨清寒时 发表于 2017-2-19 12:38
就跟安卓的activity是一样的,全部放到栈里面,这样用户体验是很棒的

恩恩!安卓我不太懂,但是安卓给我的印象就是大量用了一些底层概念,比如到处都是接口、抽象、继承什么的~学习像盖大楼一样~~安卓楼层比较高,他的底层一定有很多好玩的东西~~
回复 使用道具 举报

哈哈,我还想发一个贴,叫算法,也是据说说的~~~
回复 使用道具 举报
数据结构书里面都有。可以看看。
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
找本数据结构看看吧,里面很详细的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马