在柠檬班社区看到老师一篇android 内存泄漏写的通俗易懂,绝对是小白能看懂的!

原文:http://www.lemfix.com/topics/2

平常会听到程序员说“内存泄漏”,看表面的意思就是内存泄漏,可能会导致APP卡住,表面理解的就是这样。那么,什么情况会发生内存泄漏?这个问题是我一直在关注,但有些文章写得有点复杂,不过最近找到一篇比较通俗易懂的!

JVM 和 ART

JVM:是运行Java程序的虚拟机;JVM 在运行Java程序时,会创建一个实例,通过在实际的计算机上仿真模拟各种计算机功能,它具有完善的硬件架构(如处理器、堆栈、寄存器等),可以让java程序运行与操作系统无关。

ART:android虚拟机,是android系统运行android程序的虚拟机,其指令集是基于寄存器架构的,执行特有的文件格式-dex字节码来完成生命周期管理、堆栈管理、线程管理、安全异常管理、垃圾回收等功能。

内存区域

Java在JVM虚拟出的内存环境中运行,JVM的内存可分为三个区:堆(heap)、栈(stack)和方法区(method)。

内存泄漏 和 内存溢出

内存泄露(Memory leak) 程序在向系统申请分配内存空间后(new),在使用完毕后未释放。结果导致一直占据该内存单元,我们和程序都无法再使用该内存单元,直到程序结束,这是内存泄露。

内存溢出(out of memory) 程序向系统申请的内存空间超出了系统能给的,比如一车最多能坐5个人,你却非要塞下10个,车就挤爆了。 大量的内存泄露会导致内存溢出(oom)

内存泄漏原因分析

未完

最新文章

  1. mac 无法识别seagate硬盘、无法向其写入文件
  2. (十)Maven依赖详解
  3. linux 基础命令与文件管理
  4. Codeforces Round #195 (Div. 2) A. Vasily the Bear and Triangle
  5. easyui datagrid
  6. [原创]使用Pandoc实现Markdown文件转PDF文件
  7. boolalpha
  8. Python中pip版本升级error:You are using pip version 7.1.2, however version 8.1.1 is available.
  9. Maven项目中如何添加日志
  10. mysql命令使用
  11. Hibernate之工具类HibernateUtil
  12. 百度AI开放平台- API实战调用
  13. vscode小程序代码高亮
  14. 忘记mysql密码处理方案
  15. RedHat7.3创建本地yum源
  16. 【C#】override,Abstract,Virtual 介绍及区别--转载
  17. [WC 2018]州区划分
  18. Redis for Python开发手册
  19. Android ExpandableListActivity
  20. OpenCV2马拉松第5圈——线性滤波

热门文章

  1. 【Linux】【Commands】systemd
  2. jQuery - 按回车键触发跳转
  3. linux基础-TCP/IP协议篇
  4. java使用在线api实例
  5. Nginx平滑升级版本
  6. CF1070K Video Posts 题解
  7. CF667A Pouring Rain 题解
  8. 私有化 : _x: 单前置下划线,私有化属性或方法;__xx:双前置下划线;__xx__:双前后下划线;属性property
  9. Spring学习(五)Spring和Mybatis的整合
  10. Go1.18中的泛型编程