堆栈(其实就是栈)的概念:

看过很多关于堆和栈的帖子,但仍然一知半解。可能是智商不够用,o(╥﹏╥)o。写写自己的总结吧,怕以后忘了。
以下摘自维基百科。
堆栈(英语:stack)又称为栈或堆叠,是计算机科学中一种特殊的串列形式的抽象数据类型,其特殊之处在于只能允许在链表或数组的一端(称为堆栈顶端指针,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。另外堆栈也可以用一维数组或链表的形式来完成。堆栈的另外一个相对的操作方式称为队列。
堆栈数据结构使用两种基本操作:推入(压栈,push)和弹出(弹栈,pop):
推入:将数据放入堆栈的顶端(数组形式或串列形式),堆栈顶端top指针加一。
弹出:将顶端数据数据输出(回传),堆栈顶端数据减一。

堆的概念:

(英语:Heap)是计算机科学中的一种特别的树状数据结构。若是满足以下特性,即可称为堆:“给定堆中任意节点 P 和 C,若 P 是 C 的父节点,那么 P 的值会小于等于(或大于等于) C 的值”。若父节点的值恒小于等于子节点的值,此堆称为最小堆(英语:min heap);反之,若父节点的值恒大于等于子节点的值,此堆称为最大堆(英语:max heap)。在堆中最顶端的那一个节点,称作根节点(英语:root node),根节点本身没有父节点(英语:parent node)。

堆和栈在java中的区别

在java中堆一般用来存储对象和数组,栈一般用来存储方法和基本类型(注:基本类型不包括string)变量。
栈的存取速度比堆快。栈中的数据是可以共享的(解释:比如int a = 3; int b =3; 此时b的指针直接指向3的地址即可,不用重新开辟一块空间存储3的地址)

什么是堆栈,堆和栈到底是不是一个概念相关推荐

  1. 数据结构,堆和栈和队列的概念

    数据结构,堆和栈和队列的概念 1 什么是数据结构 数据结构是计算机存储,组织数据的反复改.数据结构是指相互之间存在的一种或多种特定关系的数据元素集合. 2 数据结构的逻辑结构 1 集合结构,元素都是孤 ...

  2. CAS和自旋到底是一个概念吗?

    问题: CAS是 compare and swap ,就是一个比较工作内存和主内存的值是否相同,相同的话,就用新值来替换这么一个操作. 但是,为什么好多地方都说这是自旋呢? 我理解比较一次的话,成功就 ...

  3. java堆、栈、堆栈,常量池的区别,史上最全总结

    先说一下栈和堆栈,我们听老一辈的程序员一般都会说堆栈,其实栈就是堆栈的意思,连着叫只是由于历史的原因.博主04年学数据结构的时候,书上都是说的堆栈,FILO(先进后出),也经常拿堆栈和队列,FIFO( ...

  4. C++内存管理学习堆和栈

    来源:http://c.chinaitlab.com/basic/936306_2.html 一 C++内存管理 1.内存分配方式 在讲解内存分配之前,首先,要了解程序在内存中都有什么区域,然后再详细 ...

  5. php中堆和栈的使用

    一.关于堆和栈的概念及区别 这里参考上篇博客: 浅谈堆和栈的区别 通过这篇文章,我们可以知道广义的堆和栈到底是什么,但是具体在php中的使用呢 二.php中的堆栈 众所周知,PHP提供了一组函数可以用 ...

  6. java的栈堆的理解_理解堆与栈 - 一步一个脚印 - BlogJava

    一.引言: 一直不太明白堆与栈到底是什么,是指一块内存区呢,还是指一种数据结构?编写程序中总提到内存分配的栈与堆的区别,静态与动态分配等,总也弄不明白,隐约知道一点,但总分不清堆与栈到底是一块内存区还 ...

  7. 什么是内存中的堆和栈?与数据结构中的堆和栈有什么区别?

    内存中的堆和栈 一直使用堆和栈的相关概念,对内存中(操作系统)中的堆与栈和数据结构中的堆与栈一直不求甚解,这次,突然想起这个问题,在此进行一个简单梳理归纳,如有错误,恳请读者指出. 栈(stack) ...

  8. JavaScript中堆与栈的区别

    在理解堆与栈这两个概念时,需要放到具体的场景下去理解.一般情况下有两层含义: (1)内存操作场景下,堆与栈表示两种内存的管理方式. (2)数据结构场景下,堆与栈表示两种常用的数据结构. 1.内存操作场 ...

  9. JVM学习(2)——技术文章里常说的堆,栈,堆栈到底是什么,从os的角度总结

    俗话说,自己写的代码,6个月后也是别人的代码--复习!复习!复习!涉及到的知识点总结如下: 堆栈是栈 JVM栈和本地方法栈划分 Java中的堆,栈和c/c++中的堆,栈 数据结构层面的堆,栈 os层面 ...

  10. 【转】深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第四节 参数传递对堆栈的影响 2

    前言 虽然在.Net Framework 中我们不必考虑内在管理和垃圾回收(GC),但是为了优化应用程序性能我们始终需要了解内存管理和垃圾回收(GC).另外,了解内存管理可以帮助我们理解在每一个程序中 ...

最新文章

  1. R语言基于自定义函数构建xgboost模型并使用LIME解释器进行模型预测结果解释:基于训练数据以及模型构建LIME解释器解释一个iris数据样本的预测结果、LIME解释器进行模型预测结果解释并可视化
  2. 售前常见问题解答(一)
  3. python nonetype_python装饰器 ——@符号与“TypeError: ‘NoneType’ object is not callable” | 学步园...
  4. Mycat关键特性,什么是MYCAT,MYCAT监控,版本架构,长期规划2.0,Mycat高可用方案
  5. Mono for Android 篇二 使用Spinner 实现下拉列表读取Browser.BookmarksUri
  6. java 写入xml文件_java读写xml文件
  7. python条件语句练习题_python学习-7 条件语句 while循环 + 练习题
  8. ubuntu 16.04 编译android,Ubuntu 16.04 64bit 编译 Android 4.4 源码
  9. Linux学习----文件的使者-Rsync(马哥教育原创)
  10. Advanced Installer生成安装包
  11. 软设考点精要,精确到每页!
  12. m序列产生原理及其性质
  13. 盘点17个能帮助企业运营完美服务的AI聊天机器人
  14. 微信小程序 之修改switch组件尺寸大小
  15. 多任务学习(Multi-Task Learning)
  16. 学大伟业 Day 2 培训总结
  17. 探索翻译后修饰(PTMs) 的新工具 | MedChemExpress
  18. 网络职业成长规划经验谈
  19. 【CTO论道】京东商城李大学:京东研发团队管理经验谈
  20. 从优步僵尸车事件看源码保护的必要性

热门文章

  1. 创业公司产品经理的进阶思考
  2. Niushop开源商城:618电商大趴开始预热啦!你的开源商城系统呢?
  3. Proteus与keil联合仿真
  4. 敏感性分析—Sobol
  5. MacBook Pro App Store无法下载和更新软件解决方案
  6. [第四章] 深入理解计算机系统第三版 家庭作业参考答案
  7. 【VB数组小例】产生随机数并求和(附带添加图片用法)
  8. Python爬网易云音乐的那些事
  9. CentOS7安装 SGE
  10. 快速开发 HTML5 交互式地铁线路图