‘堆’出你的洪荒之力
第二节
在上一节我们说到了栈,他在内存中是连续的空间;保存一个个的栈帧,对应一次次方法的调用;还讲到了他是保存对象的引用,那么对象存在哪里呢?我们来看看昨天的一张图:
对象就存在图中的内存区域,在JVM中,那片区域叫做堆!
由图中可以看到堆的存储结构和栈是不同的,堆在内存中并不是一块连续的区域,他是分散的(物理上是分散,但逻辑上是连续的,大家好好体会一下);虚拟机通过栈中引用的指引在堆中找到所需要的对象。
在虚拟机遇到一条new的指令的时候,经过一系列的操作过后(现在讲的话会看不懂)虚拟机就要为该新生对象分配内存空间了,那么问题来了,这么散,虚拟机要怎么知道如何分配呢?分配的方式有两种:指针碰撞和空闲列表。
指针碰撞是将内存逻辑上分为两边,一边是空闲的,一边是在用的,指针指向分界点,当需要分配内存的时候只要移动指针即可。但这种只适用于内存规整的情况下,也就是刚刚说的分两边。一般用在Serial,PaeNew等垃圾收集器中,也就是堆中的新生代中。(最后一句话会在后面分几章讲,道路遥远着!)
那么空闲列表说的就是在内存不是规整的情况下,虚拟机必须维护一个列表,用于记录哪些内存是可用的,在需要进行分配的时候就从列表中找到一块足够大下的空间进行分配,并且更新列表。又要讲一句看不懂的话:该方法适用于像CMS这种基于Mark-Sweep的垃圾收集器,适用于堆中的年老区!
上两段都提到了垃圾收集器,也就是GC。写过java的都知道,java程序很少需要我们去自己释放资源,原因就是这个GC机制了。
好啦,今天就不多说啦,好好理解一下上文,只要知道一下几点就OK啦!
存放new创建的对象和数组;
在运行时动态分配内存(比如 new()),较慢,但灵活;
是不连续的内存区域,在发出申请的时候,会干嘛干嘛的。。。
由Java虚拟机的自动垃圾回收器来管理
你们以为堆就是这么点东西?那真的是呵呵哒!下章继续堆!
转载于:https://www.cnblogs.com/chengpeng15/p/5822605.html
‘堆’出你的洪荒之力相关推荐
- Coding哥,魅族让你用洪荒之力来夺宝了!
曾经也是Coding哥的小编以前有一个梦想,就是靠编程哪天也能像"中国好声音"里的歌手一样一夜成名,名利双收!可现实是残酷的,一直到小编离开编程这个行当,这个梦想也木有实现,给小编 ...
- 以洪荒之力打开linux德·摩根定律
德·摩根定律让学习liunx的小伙伴绕得头疼,现在我就用洪荒之力为大家理顺一下这个定律. 由图片可以看出, A=4+3 B=3+2 非A=2+1 非B=4+1 A且B就是代表既是A又是B的地方,A和B ...
- 2016程序员你该爆发洪荒之力了!八招教你成功
你在白天的办公室里谈笑风生,我在黑夜的出租屋里敲出人生,不要问一个苦逼的程序员未来如何?只想说,我的梦想就像乔布斯一样"改变世界",改变人生--从码农到成功创业者的宝贵经验,八条成 ...
- 洪荒之力已无,追求之心尚在
一.致谢 我的第一本习作<Hadoop构建数据仓库实践>出版了.感谢CSDN博客提供的技术学习平台,能让我把自己平时积累的技术心得加以总结,形成一篇篇博文与人分享.正因如此才有了将博文整理 ...
- 探索挖掘数据的洪荒之力
9月12日-9月14日,2016中国(北京)国际大数据产业博览会暨高峰论坛,在北京·中国国际展览中心举行.本届展会以"促进大数据时代变革.共赢新时代机遇和挑战"为主题,展示了大数据 ...
- DeepTables: 为结构化数据注入深度学习的洪荒之力
近年来深度学习在CV.NLP等非结构化领域展现出超强的统治力,突破最高水平的算法层出不穷.深度学习在结构化和非结构化领域表现出来的巨大反差已成为热门话题,自从以XGBoost.LightGBM为代表的 ...
- 华山医院释放信息化“洪荒之力” 为400万患者提供智慧医疗
中国姑娘傅园慧一夜之间火遍全民的"表情包",让大家见识了"洪荒之力"的强大.而在信息化建设领域,怎么样发挥互联网+的"洪荒之力",去解决一家 ...
- 我用尽了洪荒之力,解开了ChatGPT 写前端代码的封印,结果...
我用尽了洪荒之力,解开了ChatGPT 写前端代码的封印 介绍 ChapGPT 听起来好得令人难以置信,所以让我们让它为我们编写一些 JS 代码.我想看看它是否可以解决我作为前端开发人员每天所做的任务 ...
- 一行命令堆出你的新垣结衣,不爆肝也能创作ASCII Art
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 兴坤 发自 凹非寺 量子位 报道 | 公众号 QbitAI 万恶之源 ...
最新文章
- 开启报名 | 青源 Salon 第 1 期:强化学习专场,报告,海报,激辩,这是年轻人的会场
- window下利用navicat访问Linux下的mariadb数据库
- 顺序表的应用——逆置问题
- 世界坐标系,摄像机坐标系、图像坐标系关系汇总
- Apache Camel 2.23发布
- CentOS6.0 yum php mcrypt 扩展安装问题
- micropython webrepl_4-5 MicroPython WebREPL 命令行交互环境设置-2 接入点模式
- python unittest教程_Python Unittest原理及基本使用方法
- 此计算机上的操作系统不符合 sql,windows7系统安装SQL server2012提示操作系统不符合最低要求怎么办...
- 修改分值,总分不能超过100
- Android日志工具Log的使用
- 【matlab】从图片中截取矩形区域(手工选取/标记在原图上/截取矩形区域并保存)
- 嵌入式linux增加root权限,Ubuntu12.04 添加新用户并增加管理员权限
- 基于JSP实现的影视创作论坛系统
- ezcad旋转轴标刻参数_激光打标机软件ezcad中菜单下的地球仪标刻功能介绍及其操作设置...
- win与安卓同步剪切板 快传照片
- win10突然不能使用usb大容量存储设备(移动硬盘)的解决方法
- linux的intel显卡驱动下载地址,英特尔®嵌入式媒体和显卡驱动程序(英特尔® EMGD)...
- Windows 10配置GPU环境
- 阿雪的学习记录|解决Linux下PPPoE拨号上网不稳定的问题