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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 守得云开见月明 初级黑马   /  2018-6-12 20:07  /  704 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

JavaSE学习了有半个月,今天主要讲讲这些天的一些关于栈的理解.其实呢,老师课上讲过栈的原理,但讲的多的是内存图方面,还是比较抽象.下面我通过一些例子来说明:
这是一段比较简单的代码,总共只有3个方法,分别为main方法、add求和方法、max求最大值方法.java中的方法都是按顺序执行,而栈的空间最顶端不是封闭的,首先main方法压栈,再者add方法进栈,最后max方法进栈,内存图如下:
当方法执行结束,就会出现弹栈,也就是从栈的顶部出栈,因此进栈顺序为123,出栈顺序为321,从而就有了先进后出,后进先出的说法.
Java中也有栈的类(Stack),简单看下JDK1.9api手册,里面总共有5个方法,如图:
Push方法的功能是进栈,push方法的功能是出栈,下面我们简单实现一下,直接上代码:

可以看出由于java是按顺序执行方法,因此入栈顺序为123.我们来看看代码运行结果:
输出顺序为321,所以,我们可以得出栈的顺序是后进先出.

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马