博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通俗的理解java的堆和栈
阅读量:6681 次
发布时间:2019-06-25

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

可以把堆理解为一家餐厅,里面有200张桌子,也就是最多能同时容纳200桌客人就餐,来一批客人就为他们安排一些桌子,如果某天来的客人特别多,超过200桌了,那就不能再接待超出的客人了。

当然,进来吃饭的客人不可能是同时的,有的早,有的晚,先吃好的客人,老板会安排给他们结账走人,然后空出来的桌子又能接待新的客人。
这里,堆就是餐厅,最大容量200桌就是堆内存的大小,老板就相当于GC(垃圾回收),给客人安排桌子就相当于java创建对象的时候分配堆内存,结账就相当于GC回收对象占用的空间。

接着把栈比作一口废井,这口井多年不用已经没水了,主人现在把它作为贮存自酿酒的地方,存酒的时候就用绳子勾着酒坛子慢慢放下去,后面再存就一坛一坛堆着放上去,取酒的时候就先取最上面的坛子。

这个比喻可能不太好,但是栈就是这个概念,先进后出。

---------------------------------------------------------------------------------------------

在java中的栈:栈的原理明白了,其实只要是计算机只要是编程语言,什么堆什么栈都是一样的,基本作用也一样。java中可以认为,栈用来存放局部变量的。

public void fun(){

    int i=0; //i 是一个局部变量,存放在栈里面的

    Object obj = new Objec(); //obj 是一个对象应用,同样也是一个局部变量,存放在栈里面的,但是obj指向的对象,在存在堆中

}

转载地址:http://zlxao.baihongyu.com/

你可能感兴趣的文章
Jqery Mobile 简单了解
查看>>
android edittext setInputType方法
查看>>
我的友情链接
查看>>
批量上传公钥到Linux服务器
查看>>
nagios+centreon总结之第八章——Centreon 添加nagios检查命令
查看>>
网页中的编码与乱码(1)
查看>>
CentOS源码安装GitLab汉化版
查看>>
yum 命令的使用,及yum仓库的创建
查看>>
iframe高度自适应的6个方法
查看>>
从构建分布式秒杀系统聊聊分布式锁
查看>>
电子邮件传输之SMTP协议
查看>>
AD域用户登录验证
查看>>
如何部署AD站点
查看>>
CISCO路由器常用命令
查看>>
mysql表行转列的用法
查看>>
基于Groovy实现Spring Bean的动态加载
查看>>
Cordova 创建插件
查看>>
什么是geohash(地理散列)
查看>>
关于iOS 5 Could not instantiate class named NSLayoutConstraint错误
查看>>
ITFriend开发日志20140611
查看>>