java中啥是栈啊?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中啥是栈啊?相关的知识,希望对你有一定的参考价值。

栈是一种常用的数据结构,栈只允许访问栈顶的元素,栈就像一个杯子,每次都只能取杯子顶上的东西,而对于栈就只能每次访问它的栈顶元素,从而可以达到保护栈顶元素以下的其他元素.”先进后出”或”后进先出”就是栈的一大特点,先进栈的元素总是要等到后进栈的元素出栈以后才能出栈.递归就是利用到了系统栈,暂时保存临时结果,对临时结果进行保护.
对于栈的学习,建议你看一看<数据结构与算法>这本书.来自:求助得到的回答
参考技术A 存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)。

栈和常量池中的对象可以共享,对于堆中的对象不可以共享。栈中的数据大小和生命周期是可以确定的,当没有引用指向数据时,这个数据就会消失。堆中的对象的由垃圾回收器负责回收,因此大小和生命周期不需要确定。

局部变量的数据存在于栈内存中。

栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。栈中主要存放一些基本类型的变量数据(int, short, long, byte, float, double, boolean, char)和对象句柄(引用)。
参考技术B 是java中实现的一种的数据结构,就好像是个箱子,这能从一头开始往里放东西,也只能从这条往外拿东西。往外拿的时候是跟放进去的顺序相反,就是所谓的先进后出。 参考技术C 将白了就是先进后出,一种数据结构

以上是关于java中啥是栈啊?的主要内容,如果未能解决你的问题,请参考以下文章

在Java中啥是<>符号[重复]

Java中啥是可调用的?

java中啥是EJB?

Java 中啥是快速、等待通知或忙等待?

Java中啥是正则表达式

Java开发中啥是垃圾回收?