黑马程序员技术交流社区

标题: 简单讲讲栈 [打印本页]

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

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






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2