首页 > 其他分享 >栈空间、堆空间的区别

栈空间、堆空间的区别

时间:2022-08-16 11:34:42浏览次数:47  
标签:变量 区别 内存空间 内存 空间 数据结构

什么情况下在程序运行时申请一个堆空间(很多现象都没去思考背后的原理,下次为自己所用)

堆内存和栈内存的区别如下:

1、定义不同 堆内存是区别于栈区、全局数据区和代码区的另一个内存区域。堆允许程序在运行时动态地申请某个大 小的内存空间。

栈内存在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分 配。

2、特点不同 堆内存实际上指的就是优先队列的一种数据结构,第一个元素有最高的优先权;

栈内存实际上就是满足 先进后出的性质的数学或数据结构。栈内存是存取速度比堆要快,仅次于寄存器,栈数据可以共享。

3、范围不同 堆内存中分配的内存需要程序员手动释放,如果不释放,而系统内存管理器又不自动回收这些堆内存的 话动态分配堆内存,那就一直被占用。栈内存中为这个变量分配内存空间,当超过变量的作用域后, Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。

 

标签:变量,区别,内存空间,内存,空间,数据结构
From: https://www.cnblogs.com/zhouyuqing1024/p/16590875.html

相关文章

  • rom和ram的主要区别
    RAM和ROM相对两者的最大区别是RAM在断电以后保存在上面的数据会自动消失,而ROM不会自动消失,可以长时间断电保存。 RAM就是我们平时所说的运行内存,它的确是随时可读写的。......
  • $router和$route的区别
    原文链接:https://blog.csdn.net/xunfengZ/article/details/109670979 总的来说,$router是用来操作路由的,$route是用来获取路由信息的。1.$router是VueRouter的一个实......
  • es6中 for-in for-of的用法和区别
    其中for-of是ES6新增的迭代语法在MDN上的解释:for...in语句以任意顺序遍历一个对象的可枚举属性。对于每个不同的属性,语句都会被执行。for...of语句在可迭代对象(包括Arr......
  • 查询数据库中每张表的数据以及索引占用空间
    BEGIN --查询目前数据库中的用户表 DECLARE@currentTableTABLE(tableNameNVARCHAR(50)); INSERTINTO@currentTable(tableName) SELECTname FROMsy......
  • make clean 与 make distclean 的区别及其他
    原文地址:https://www.jianshu.com/p/9920cd513c2b/区别:makeclean仅清除之前编译的可执行文件及配置文件。makedistclean要清除所有生成的文件。Makefile在符合......
  • Web前端和UI前端之间有哪些区别
    许多人无法区分用户界面前端和网络前端的区别,认为他们做同样的工作。因此,今天的爱创课堂将详细讨论两者的区别:Web前端开发对网站而言,前端即是网站的前端,它包括表现层和......
  • GEE的存储空间
    在EE中,主要的存储空间分别是:GoogleDrive,GoogleAssets,GoogleCloudStorage。(1)GoogleDrive是Google提供给用户的免费在线存储空间,总大小15G,用户可以在线将任务中的数......
  • 交换机 和 路由器 区别
    因为路由器是基于IP设计的,俗称三层⽹络设备,路由器的各个端⼝都具有MAC地址和IP地址;⽽交换机是基于以太⽹设计的,俗称⼆层⽹络设备,交换机的端⼝不具有MAC地址。交......
  • Python 的 Requests 和 Httpx 在爬取应用中的一个区别
    HTTPX是功能齐全的Python3的HTTP客户端,支持同步和异步API,支持HTTP/1.1和HTTP/2。一般情况下,在爬取网页内容的时候,httpx与requests的基本使用方法几乎是一模一样的。......
  • 一文明白安卓64位和32位的区别,通俗明了。【思路篇】
    前言:自从2019年8月1日起,只要上架googleplay应用市场就必须提供64位版本的App才能上架。1、64位和32位有什么区别64位和32位指的是CPU处理器一次处理数据的能力是32位还......