博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 堆与栈的区别
阅读量:5990 次
发布时间:2019-06-20

本文共 465 字,大约阅读时间需要 1 分钟。

hot3.png

一直对这两个概念比较模糊,心里不安,所以下决心好好的看了一下它。

它们都是计算机中的数据结构。

堆(heap):把堆比作一个大仓库,仓库里面可以放很多东西。当我们创建一个对象时(new XXX),首先会在堆里面开辟一块空间放置对象本身,然后再把对象的引用地址放入栈中。最后访问该对象时,先通过栈找到引用地址,然后再找到实际对象。

栈(stack): 栈/堆栈(FILO)先入后出。类似于枪的弹夹,先放入的子弹最后才打出来。弹夹最下面被称为栈低,最上面称为栈顶。 子弹压入弹夹的过程称为"进栈",子弹打出去的过程称为"出栈"。它的特点的容量小,查询速度快。一般用于存储基本数据类型变量、临时变量、局部变量和对象的引用地址。当超过该对象/变量作用域时,java就会释放该对象/变量的内存空间。如果是对象,则对象本身就成了无主(废弃)对象,java GC垃圾回收机制在运行时就会把无主对象删除,回收空间.

我的理解,如果有误请指出,感激不尽。

转载于:https://my.oschina.net/scjelly/blog/523945

你可能感兴趣的文章
go 语言基础
查看>>
【原创】基于部署映像服务和管理(DISM)修改映象解决WIN7 USB3.0安装时报错
查看>>
linux杀掉80端口线程命令
查看>>
QT线程初次使用。遇到的问题。
查看>>
烦恼的高考志愿
查看>>
根据矩阵变化实现基于 HTML5 的 WebGL 3D 自动布局
查看>>
查询数据库连接数
查看>>
CROSS APPLY和 OUTER APPLY 区别详解
查看>>
C# 使用Shell32 进行压缩与解压缩的标准且正确做法
查看>>
PHP如何实现页面静态化
查看>>
HDU 4371 Alice and Bob
查看>>
软测第一次lab 实验报告
查看>>
Hadoop分布式文件系统:架构和设计要点 - 转
查看>>
4.EGit基本用法
查看>>
Android FrameWork——Binder机制详解(2)
查看>>
74HC165级联
查看>>
面向对象的Shell脚本
查看>>
那一抹秋色!漂亮的秋天风景壁纸【组图】
查看>>
解密gzip压缩的网页数据流(转)
查看>>
手工建库
查看>>