zoukankan
html css js c++ java
栈的效率为什么比堆高?
“堆”和“栈”并不是数据结构上的Heap跟Stack,而是程序运行中的不同内存空间。
那么这就简单了,栈是程序启动的时候,系统分好了给你的,你自己用,系统不干预。
堆是用的时候才向系统申请的,用完了还回去,这个申请和交还的过程开销相对就比较大了。
栈与堆都是Java用来在Ram中存放数据的地方。
栈中主要存放一些基本类型的变量(,int, short, long, byte, float, double, boolean, char)。 存在栈中的数据可以共享。栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。
堆是一个运行时数据区,类的(对象从中分配空间。由于要在运行时动态分配内存,存取速度较慢。 存在栈中的数据可以共享。
栈是编译时分配空间,而堆是动态分配(运行时分配空间),所以栈的速度快
cpu有专门的寄存器(esp,ebp)来操作栈,堆都是使用间接寻址的。栈快点
查看全文
相关阅读:
linux学习笔记-11.正则表达式
linux学习笔记-10.解压与压缩
linux学习笔记-9.查找
linux学习笔记-8.vim
linux学习笔记-7.文件属性
linux学习笔记-6.权限
linux学习笔记-5.用户和组
@Param注解的用法解析
linux学习笔记-4.系统命令
linux学习笔记-3.文件相关命令
原文地址:https://www.cnblogs.com/mataiyuan/p/12552136.html
最新文章
百度词汇检索,计算PMI值
Python中的编码和解码问题
自然语言分析——实验记录
sklearn中的分词函数countVectorizer()的改动--保留长度为1的字符串
CountVectorizer()类解析
自然语言处理--中文文本向量化counterVectorizer()
情感分析snownlp包部分核心代码理解
sys.argv和getopt.getopt()的用法
爬取京东网页评论(动态网页)
简述json模块
热门文章
IDEA开发环境中快捷键与系统 QQ等冲突的解决办法
【java-console】如何双击运行可执行jar包及遇到依赖dll报错问题的解决办法
IDEA 开发环境中设置Subversion,遇到svn安装路径包含空格无法使用版本控制的解决办法
如何使用代码模拟用户点击事件,触发回调处理方法(兼容多种浏览器)(原创)
java搭建SSM的Web开发框架-整合这3者用到的配置文件
如何通过SSH工具(SecureCRT、XShell)连接Vmware虚拟机中的Linux(CentOS7)
分析一段包含闭包的代码段
chrome小书签-实用的小功能-javascript代码段
识别手机浏览器代码【C#和JS两种语言】
jQuery on() 方法 为选定已存在元素和未来元素绑定标准事件和自定义事件
Copyright © 2011-2022 走看看