前言
最近我一直在面试高级工程师,不管初级,高级,程序员,我想面试前,大家刷题一定是是少不了吧。
我也一样,我在网上找了很多面试题来看,最近又赶上跳槽的高峰期,好多粉丝,都问我要有没有最新面试题,索性,我就把我看过的和我面试中的真题,及答案都整理好,整理了《互联网大厂面试题》并分类 72份 PDF,累计 3170页!我在持续更新中,涵盖大厂算法会更多!
内存泄漏是什么?
内存泄漏即 ML (Memory Leak)
指 程序在申请内存后,当该内存不需再使用 但 却无法被释放 & 归还给 程序的现象
内存泄漏有哪些情况,对应的解决方案?
内存泄漏的原因归根到底就是当需要被回收变量的内存被其他变量引用持有,导致内存回收失败
常见的原因有:
1.非静态内部类/匿名类
-
原因1:
非静态内部类/匿名类 Handler
持有外部的Activity/Fragment
对象的引用,导致Activity/Fragemnt
被销毁的时候没有被回收 -
解决方案:
- 将Handler类改为静态内部类 + 弱引用(
WeakReference
)持有Activity
引用(静态类默认不持有
- 将Handler类改为静态内部类 + 弱引用(