网站设计宽屏尺寸,wordpress 简历,中山市做网站实力,石家庄品牌网站建设目录 JVM垃圾回收器前言面试题常见的垃圾回收器有哪些#xff1f;CMS 收集器#xff1f;G1 收集器有了 CMS#xff0c;为什么还要引入 G1#xff1f;垃圾收集器应该如何选择#xff1f; JVM垃圾回收器
前言
已经找到工作了#xff0c;分享秋招时的笔记。祝大家都能顺利… 目录 JVM垃圾回收器前言面试题常见的垃圾回收器有哪些CMS 收集器G1 收集器有了 CMS为什么还要引入 G1垃圾收集器应该如何选择 JVM垃圾回收器
前言
已经找到工作了分享秋招时的笔记。祝大家都能顺利找到自己心仪的工作。 面试题
常见的垃圾回收器有哪些
Serial 收集器单线程工作的收集器在垃圾收集时必须暂停其他所有工作线程直到收集结束ParNew 收集器Serial 收集器的多线程并行版本Parallel Scavenge 收集器与 ParNew 相似关注点是吞吐量CPU 中运行用户代码时间/CPU 总消耗时间的比值Serial Old 收集器Serial 收集器的老年代版本单线程收集器Parallel Old 收集器Parallel Scavenge 收集器的老年代版本CMS 收集器是一种以获得最短回收停顿时间为目标的收集器G1 收集器具有局部收集的设计思路和基于 Region 的内存布局
CMS 收集器
CMS 收集器是以获取最短回收停顿时间为目标的收集器基于标记 - 清除算法实现垃圾回收过程 初始标记单线程运行标记 GC Roots 能直达的对象并发标记无停顿和用户线程同时运行从 GC Roots 的直达对象开始遍历整个对象图重新标记多线程运行需要暂停所有用户线程修正并发标记期间产生对象并发清除无停顿和用户线程同时执行清理掉标记阶段判断的已经死亡的对象 缺点 依赖 CPU 资源无法处理浮动垃圾收集结束会有大量空间碎片
G1 收集器
G1 收集器具有局部收集的设计思路和基于 Region 的内存布局垃圾回收步骤 初始标记标记 GC Roots 能直达的对象并发标记和用户线程同时运行从 GC Roots 开始遍历对象图最终标记标记在并发标记过程中产生的垃圾筛选回收指定回收计划选择多个 Region 构成回收集把回收集中 Region 的存活对象复制到空的 Region 中再清理掉旧的 Region 空间
有了 CMS为什么还要引入 G1
CMS 有三个明显的缺点
依赖对 CPU 资源无法处理浮动垃圾收集结束会有大量空间碎片
G1 主要解决了内存碎片多的问题
垃圾收集器应该如何选择
Serial在没有停顿时间要求的单线程处理器上运行Parallel优先考虑应用程序的性能对停顿时间没有什么要求CMS/G1对停顿要求和用户体验有要求的场景 秋招后端开发面试题系列目录 一、Java 1.1 Java基础上 1.2 Java基础下 1.3 Java集合 1.4 JavaIO 1.5 Java多线程上 1.6Java多线程下 二、JVM 2.1 JVM底层原理 2.2 垃圾回收器 2.3 垃圾回收算法 2.4 类加载机制 2.5 运行时数据区 三、MySQL 3.1 MySQL基础 3.2 事务 3.3 索引 3.4 锁机制 3.5 MVCC 四、Redis 4.1 Redis基础 4.2 缓存原理 五、中间件 5.1 RabbitMQ 六、Spring开源框架 6.1 Spring 6.2 Spring MVC 6.3 Spring Boot 6.4 MyBatis 七、操作系统 八、计算机网络 九、设计模式 十、微服务架构 十一、Spring Cloud分布式 11.1 分布式基础 11.2 Spring Cloud 11.3 GateWay 11.4 Nacos 11.5 OpenFeign 11.6 Ribbon 十二、算法 十三、项目