绿色的医疗资讯手机网站wap模板html源码下载网上书店网站建设实训总结

张小明 2026/1/19 22:24:53
绿色的医疗资讯手机网站wap模板html源码下载,网上书店网站建设实训总结,企业策划书范文案例,设置网站的默认文档Java 垃圾回收#xff08;GC#xff09;算法详解目标#xff1a;把 “Java 是怎么判断对象能不能回收”、以及 “具体用什么算法回收” 讲清楚#xff0c;并顺手把它们和 HotSpot 的分代收集、常见收集器联系起来。1. GC 要解决的核心问题 Java 的自动内存管理主要解决两件…Java 垃圾回收GC算法详解目标把“Java 是怎么判断对象能不能回收”、以及“具体用什么算法回收”讲清楚并顺手把它们和 HotSpot 的分代收集、常见收集器联系起来。1. GC 要解决的核心问题Java 的自动内存管理主要解决两件事判断哪些对象“死了”不可达用什么方式回收它们占用的内存算法与实现真正的回收动作本质上就是围绕这两件事在做工程取舍吞吐量、延迟STW、内存碎片、CPU 开销、并发复杂度等。2. 对象“是否存活”的判定可达性分析Reachability Analysis2.1 引用计数法Reference Counting——理论简单Java 主流不使用思路对象有一个计数器引用 1取消引用 -1计数为 0 就回收。致命问题无法解决循环引用。A - B B - AA、B 互相引用计数都不为 0但其实外界已经不可达了导致内存泄漏。HotSpot 主流采用可达性分析而不是引用计数。2.2 可达性分析从 GC Roots 出发“找活人”思路把一批“肯定活着的对象”当作根GC Roots从根出发沿引用链遍历能走到的对象存活走不到的对象可回收GC Roots 常见来源非常重要虚拟机栈栈帧中的引用局部变量方法区静态变量中的引用方法区中常量引用字符串常量池等JNI 引用Native 方法里持有的对象活跃线程对象、同步锁持有的对象如synchronized关联的 Monitor“为什么局部变量没置 null 也会被回收”因为 JIT 可能做逃逸分析/标量替换/栈上分配或者优化掉某些引用的作用域能否回收取决于可达性不是你“看起来还在变量里”。3. GC 算法的“基本动作”不管你用什么收集器核心操作通常就是这几个步骤的组合标记Mark找出要回收/要保留的对象清除Sweep把不可达对象的内存释放整理Compact把存活对象挪一挪消除碎片复制Copy把存活对象复制到另一块区域天然紧凑不同算法的差异就是怎么标记怎么释放是否移动对象是否产生碎片是否需要额外空间是否能并发4. 四大经典 GC 算法4.1 标记-清除Mark-Sweep流程从 GC Roots标记存活对象扫描堆把未标记对象的内存清除优点实现简单不需要移动对象对象地址稳定缺点内存碎片多大量不连续空洞影响分配效率清除阶段可能扫描成本高回收前 [A][B][C][D][E] 回收后 [A][ ][C][ ][E] - 产生碎片适用场景对象移动成本高的场景但现代 JVM 更多用整理或区域化来解决碎片4.2 标记-整理Mark-Compact流程标记存活对象把存活对象往一侧紧凑搬迁直接清理掉边界外的空间优点无碎片内存连续分配效率高bump-the-pointer 线性分配缺点移动对象成本高需要更新引用指针修正STW 时间可能更长实现也更复杂回收前 [A][ ][C][ ][E] 整理后 [A][C][E][ ][ ]适用场景老年代回收常用对象存活率高复制不划算碎片又不能忍4.3 复制算法Copying / Semi-space流程把内存分成两块From、To只用 From 分配对象回收时把存活对象复制到 To并让它们紧凑排列交换 From/To优点回收速度快只复制存活对象天然无碎片分配非常快线性指针缺点空间浪费需要一块等大备用区理论上 50%对象存活率高时复制成本高适用场景新生代大部分对象“朝生夕死”存活率低复制非常划算4.4 分代收集Generational Collection这不是单独的一种“微观算法”而是一种宏观策略基于经验规律绝大多数对象生命周期很短熬过多次 GC 的对象更可能长期存活。因此把堆分成新生代Young对象创建集中、死亡率高 → 用复制算法老年代Old对象存活率高 → 用标记-清除/标记-整理/区域化算法新生代的典型结构HotSpot 常见EdenSurvivor0S0Survivor1S1对象一般在 Eden 分配Minor GC 时把 Eden 一个 Survivor 里的存活对象复制到另一个 Survivor达到阈值就晋升到老年代。5. 现代 GC 里的关键技术点算法落地必备5.1 STWStop-The-World为了保证对象图一致性GC 在某些阶段需要暂停应用线程Mutator。目标就是尽量缩短 STW甚至让多数工作并发做完。5.2 写屏障Write Barrier与记忆集Remembered Set分代收集有个麻烦老年代对象可能引用新生代对象。Minor GC 只回收新生代时如果每次都全堆扫描找这种引用成本爆炸。解决写屏障 Card Table / Remembered Set对象引用发生写入时如oldObj.field youngObj通过写屏障把对应“卡页”标记为脏Minor GC 时只扫描这些脏卡对应的老年代区域即可5.3 三色标记Tri-color Marking与并发标记问题并发标记时应用线程也在改引用会出现漏标本该活着但没标到 → 这是致命错误多标本该死但被标了 → 只是浮动垃圾下一轮再收现代并发 GC如 CMS/G1/ZGC/Shenandoah都会用SATBSnapshot-At-The-Beginning或增量更新Incremental Update配合写屏障来解决一致性问题。6. 把“算法”映射到 HotSpot 常见收集器快速对号入座收集器Collector是“工程实现”它们内部会组合使用上面的算法。6.1 Serial / ParNew新生代复制算法STWSerial 单线程ParNew 多线程6.2 Parallel Scavenge新生代复制算法目标偏吞吐量Throughput6.3 Serial Old / Parallel Old老年代标记-整理为主STW主要用于吞吐量场景6.4 CMS老年代已逐步被替代标记-清除 并发标记优点低停顿缺点碎片问题、并发失败Concurrent Mode Failure、对 CPU 压力大6.5 G1面向服务端默认/主流之一堆划分为多个 Region整体是“分代 区域化 标记整理局部”通过预测模型控制停顿时间Pause Time Goal通过Mixed GC同时回收部分老年代 Region6.6 ZGC / Shenandoah超低停顿重点是“并发移动对象 并发标记”依赖读/写屏障与复杂的指针染色等技术目标极低 STW通常毫秒级甚至更低代价是实现复杂、对平台/版本依赖更强面试时可以这么收口经典算法讲原理收集器讲工程权衡新生代倾向复制老年代倾向整理/区域化低停顿靠并发 屏障。7. 常见问题与面试“易错点”7.1 为什么新生代适合复制老年代不适合新生代存活率低 → 复制少量对象成本低速度快老年代存活率高 → 复制对象多成本高还需要等大备用空间不划算7.2 标记-清除为什么会影响性能碎片导致分配慢可能触发更多 GC大对象分配可能因为找不到连续空间而失败需要整理或 Full GC7.3 什么是浮动垃圾并发标记期间新产生的垃圾可能没被本轮标记识别出来例如 SATB 语义下它们会留到下一轮回收。这不是 bug是并发 GC 的设计权衡。8. 一句话总结存活判定可达性分析GC Roots基础算法标记-清除、标记-整理、复制宏观策略分代收集年轻代复制、老年代整理/区域化现代优化并发标记 写屏障 记忆集 三色标记一致性9. 推荐延伸阅读可选《深入理解 Java 虚拟机》周志明—— GC 部分是面试高频OpenJDK / HotSpot 源码 JEP了解 G1/ZGC 的设计动机与边界
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

成都 网站建设 公司购买手表网站

Silverlight动画与模板开发详解 1. 动画与属性优先级 在Silverlight开发中,动画与属性优先级是一个重要的概念。通过一个名为 ButtonSetAndAnimate 的示例程序,可以很好地理解动画在依赖属性优先级中的位置。 1.1 示例程序界面布局 该程序的XAML文件包含一个范围为0到1…

张小明 2026/1/17 18:37:26 网站建设

东莞著名网站建设企业住房和城乡建设部网站造价师

BetterGI终极指南:高效掌握原神自动化技巧 【免费下载链接】better-genshin-impact 🍨BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动派遣 | 一键强化 - UI Automation Testing Tools For Genshin Im…

张小明 2026/1/17 18:37:27 网站建设

北京建站模板企业福州百度快速优化

视频演示 基于深度学习的反光衣检测系统演示目录 视频演示 1. 前言​ 2. 项目演示 2.1 用户登录界面 2.2 新用户注册 2.3 主界面布局 2.4 个人信息管理 2.5 多模态检测展示 2.6 多模型切换 3.模型训练核心代码 4. 技术栈 5. YOLO模型对比与识别效果解析 5.1 YOLOv…

张小明 2026/1/17 18:37:27 网站建设

淘宝现在不能发布网站建设浏阳网站开发

小米摄像机终极RTSP刷机完整指南:让普通摄像头秒变智能监控 【免费下载链接】yi-hack-v3 Alternative Firmware for Xiaomi Cameras based on Hi3518e Chipset 项目地址: https://gitcode.com/gh_mirrors/yi/yi-hack-v3 还在为小米摄像机无法接入专业监控系统…

张小明 2026/1/17 18:37:28 网站建设

wordpress 可以提交信息入口seo管理员

Linly-Talker支持自定义UI界面主题配置 在虚拟主播直播间里,一个身穿企业制服、声音亲切的数字人正用标准普通话讲解最新产品;而在另一家教育机构的课程页面上,同一位“老师”却换上了温和的语调和卡通风格的界面,正在为小学生讲解…

张小明 2026/1/17 18:37:30 网站建设

网站项目在哪接培训心得体会范文500字

一、事务ACID特性详解在数据库领域,事务是确保数据一致性的基石。ACID四大特性构成了事务的核心标准,InnoDB存储引擎通过精巧的设计实现了这些特性,为高并发业务提供了可靠的数据保障。原子性(Atomicity)原子性要求事务…

张小明 2026/1/17 14:53:28 网站建设