当前位置: 首页 > news >正文

一些JVM面试题

Java垃圾回收器的原理

有三对常见的垃圾回收器:

在JDK1.8之前,有三种常见的垃圾回收器,

serial + serialOld 串行化的垃圾回收

PS + PO 多线程并行回收,可以动态调整堆内存的大小,关注系统的吞吐量

ParNew + CMS ParNew本质上是serial 在多线程下的优化,CMS关注系统的暂停时间,允许用户线程和垃圾回收线程在一些步骤中并发进行,从而降低了用户等待时间

在JDK1.8之后,默认使用G1垃圾回收器, 这个时候,堆的划分方式有变化,划分成相等的region,G1会根据最大暂停时间来确定一次GC中回收哪些region,而不是一次性把某个区域全部回收一遍

Java垃圾回收为什么要分为新生代和老年代

对象的生命周期:

大部分对象都是短暂存在的,真正能在堆中长期持有的对象是很少的,如果把不同存活时间的对象都放在一个区域管理回收,效率会很低

垃圾回收效率:

在新生代中,得益于minorGC可以比较频繁使用,新创建的对象如果被视作垃圾就会很快被回收

而老年代的fullGC的频率就较低,因为对象的生命周期更长

垃圾回收方法:

新生代中主要是采用复制算法,复制算法可以快速清除大量的垃圾对象

老年代中主要采用标记整理算法,因为它的对象存活率比较高

相关文章:

  • Hive on Spark版本兼容性
  • 2024 年适用于 Mac 的 5 大免费录屏软件
  • Linux之进程信号详解【上】
  • 2024年电子工程与自动化技术国际会议(ICEEAT 2024)
  • Playwright 这个强大的自动化测试工具
  • pdf文件在线压缩网站,pdf文件在线压缩工具软件
  • 3067. 在带权树网络中统计可连接服务器对数目 Medium
  • JVM面试篇(下)
  • selenium的使用教程
  • webshell工具流量特征
  • 【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【06】【商品服务】接口文档地址_三级分类_SPU_SKU
  • 【创作活动】面对层出不穷的AI大模型产品我们应该怎么选择?
  • 【JavaScript脚本宇宙】通知新风尚:打造互动性十足的Web提示系统
  • VB7/64位VB6开发工具office插件开发-twinbasic
  • 【Redis】redis高阶-使用zset实现延时队列
  • CAP理论的例子讲解
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • Elasticsearch 参考指南(升级前重新索引)
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • MYSQL 的 IF 函数
  • Python3爬取英雄联盟英雄皮肤大图
  • Python利用正则抓取网页内容保存到本地
  • Python学习之路13-记分
  • spring boot下thymeleaf全局静态变量配置
  • vagrant 添加本地 box 安装 laravel homestead
  • 成为一名优秀的Developer的书单
  • 创建一种深思熟虑的文化
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 工作中总结前端开发流程--vue项目
  • 简单基于spring的redis配置(单机和集群模式)
  • 解决iview多表头动态更改列元素发生的错误
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 线上 python http server profile 实践
  • 赢得Docker挑战最佳实践
  • 智能网联汽车信息安全
  • Spring Batch JSON 支持
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (16)Reactor的测试——响应式Spring的道法术器
  • (4)STL算法之比较
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (八)c52学习之旅-中断实验
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (三十五)大数据实战——Superset可视化平台搭建
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (算法)N皇后问题
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转)【Hibernate总结系列】使用举例
  • *** 2003