如果心满意足,谁又去准备面试?

Android面试准备——Android 运行时数据堆区

2021-03-19  本文已影响0人  So_ProbuING

JVM虚拟机结构

image.png

内存抖动

内存抖动的原因

内存抖动的产生因素时:频繁的分配与回收对象

内存抖动的反应

内存抖动

内存抖动对APP产生的影响:

因为内存频繁的分配与回收,需要频繁的调用GC,GC会进行STW(STOP THE WORLD),使得线程中断 所以会造成界面卡顿


GC回收过程

清理老年代对象的时候采用标记清除算法,会产生内存碎片,再申请新的内存时候会出现不够的情况,就会产生OOM

内存抖动的检测

内存抖动的解决

核心思想

由于内存抖动是频繁的创建对象,导致了GC频繁的回收对象,频繁启动进行STW,所以处理内存抖动的核心就是减少不必要的对象创建与优化对象的创建

内存泄漏问题

什么是内存泄漏

虚拟机采用可达性分析法来确定一个对象是否可以被回收。通过一些列被称为GCRoots的对象作为起始点,从这些节点向下搜索。搜索所有的引用链,当一个对象到GC Roots没有任何引用链(即GC Roots到对象不可达)时,则证明此对象是不可用的。


GC Roots

链接:java中的引用类型

如何检查是否存在内存泄漏

上一篇下一篇

猜你喜欢

热点阅读