【面试必背】JVM篇

本文详细介绍了JVM内存模型,包括虚拟机栈、本地方法栈、堆和方法区。同时,深入探讨了JVM的垃圾回收机制,如引用计数法和可达性分析,并列举了多种垃圾回收算法,如标记-清除、复制和标记-整理。此外,还涵盖了各种垃圾收集器,如Serial、Parallel Scavenge和G1,并提供了CPU过高排查和JVM调优的相关参数。
摘要由CSDN通过智能技术生成

JVM内存模型

共享内存

虚拟机栈

java方法,存放局部变量
栈桢,每个方法从调用到运行结束的过程,对应一个栈桢从压栈到出栈
局部变量表
操作数栈

本地方法栈

native方法

程序计数器

唯一一个不会OOM的区域
当前线程执行字节码的行号指示器,确保上下文切换后能恢复到正确位置

私有内存

new出来的对象

方法区

1.8 元空间
静态变量、常量、类信息、运行时常量池

JVM垃圾回收

回收堆内存

确认垃圾

引用计数法

对象是否有被引用,引用+1,失去引用-1,对象引用数为0,表示对象可被回收
缺点:存在循环依赖

可达性分析

选取GCRoots作为根节点,对象到根节点不可达,表示可被回收
GCRoots:

  1. 虚拟机栈中局部变量表
  2. 本地方法栈中native方法
  3. 方法区中类静态属性
  4. 方法区中常量

垃圾回收算法

标记-清除&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值