Android面试之JVM

本文深入探讨Java内存模型,包括内存区域划分如堆、新生代、老年代等;讲解对象创建、内存分配及访问机制;介绍GC算法如标记清除、复制算法,并分析不同GC收集器的特点;同时提供内存调试工具指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 内存模型以及分区,需要详细到每个区放什么。

Java内存模型:

2. 堆里面的分区:Eden,survival from to,老年代,各自的特点。

Java堆分为新生代和老年代,新生代又分为一块较大的Eden区和两块较小的Survivor区(From Survivor和To Survivor)。
新生代:里面的对象朝生夕灭,每次垃圾收集时都会都有大量的对象死去,只有少量存活,Eden内存不够时,发起Minor GC,选用复制算法,只要付出少量存活对象的复制成本就可以完成收集,分配担保机制。
老年代:对象的存活时间较长,没有额外的分配担保机制,内存不够时发起Full GC,使用“标记-清除”或“标记-整理”来进行垃圾回收。

3. 对象创建方法,对象的内存分配,对象的访问定位。
4. GC的两种判定方法:引用计数与引用链。
5. GC的三种收集方法:标记清除、标记整理、复制算法的原理与特点,分别用在什么地方,如果让你优化收集方法,有什么思路?
6. GC收集器有哪些?CMS收集器与G1收集器的特点。
7. Minor GC与Full GC分别在什么时候发生?
8. 几种常用的内存调试工具:jmap、jstack、jconsole。
9. 类加载的五个过程:加载、验证、准备、解析、初始化。
10. 双亲委派模型:Bootstrap ClassLoader、Extension ClassLoader、ApplicationClassLoader。
11. 分派:静态分派与动态分派。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值