runxinzhi.com
首页
百度搜索
栈的效率为什么比堆高?
“堆”和“栈”并不是数据结构上的Heap跟Stack,而是程序运行中的不同内存空间。
那么这就简单了,栈是程序启动的时候,系统分好了给你的,你自己用,系统不干预。
堆是用的时候才向系统申请的,用完了还回去,这个申请和交还的过程开销相对就比较大了。
栈与堆都是Java用来在Ram中存放数据的地方。
栈中主要存放一些基本类型的变量(,int, short, long, byte, float, double, boolean, char)。 存在栈中的数据可以共享。栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。
堆是一个运行时数据区,类的(对象从中分配空间。由于要在运行时动态分配内存,存取速度较慢。 存在栈中的数据可以共享。
栈是编译时分配空间,而堆是动态分配(运行时分配空间),所以栈的速度快
cpu有专门的寄存器(esp,ebp)来操作栈,堆都是使用间接寻址的。栈快点
相关阅读:
MCU软件最佳实践——独立按键
MCU软件最佳实践——矩阵键盘驱动
MCU软件最佳实践——使用printf打印数据
CAP定理图解证明
类型和变量
数字ID过长 精度丢失 (已解决:后端方案)
Springboot 异步线程池配置(小型应用)
Java 数字 字符串 简单操作
Java 网络请求
Java 时间 日 周 月 季 年
原文地址:https://www.cnblogs.com/mataiyuan/p/12552136.html
最新文章
火绒提供的样本,我们可以学到什么?
如何自主搭建信息管理系统
信息孤岛解决方案之一侧
【读源码】unittest -- __init__.py 和 __main__.py
自动化测试文章目录
ASP.NET Core——爬坑之路
编程领域维度
ansible批量部署zabbix-agent2
OAuth2.0学习笔记
Unity Shader 自制无光照的光晕效果
热门文章
访问Github慢的问题
Opengl3.3+ 搭配 SDL2 框架渲染
GDB 常用选项和调试技巧
GCC 常用的编译、链接选项
源码编译libcurl库
Baacloud打不开,官网404进不去,服务器宕机,疑似跑路,附-临时解决方案
ubuntu18.04下取消中键复制粘贴功能
GNU C字节对齐__attribute__((aligned(n))) #pragma pack(n)
uboot常用命令及其使用
uboot无法通过nfs加载ubuntu18.04中的文件(转)
Copyright © 2020-2023
润新知