GC那些事儿--Android内存优化第一弹

本文介绍了Android内存优化中的GC(垃圾回收)原理,包括垃圾回收器的职责、相关概念如Heap和Stack、GC Root以及活对象/垃圾的定义。同时,探讨了Java内存管理机制,特别是JVM内存区域的划分。通过对GC流程的详细阐述,帮助开发者更好地理解和解决内存问题。
摘要由CSDN通过智能技术生成

引言

App优化之内存优化(序), 作为App优化系列中内存优化的一个小部分.

由于内存相关知识比较生涩, 内存优化中使用到的相关工具, 也有很多专有名词. 对Java内存管理, GC, Android内存管理, Dalvik/ART等知识有一个理论的认识, 可以让我们更好的使用这些工具, 分析内存问题.

据此, 我们就先从理论入手, 聊聊GC那些事儿.

1, 何为GC

GC 是 garbage collection 的缩写, 垃圾回收的意思. 也可以是 Garbage Collector, 也就是垃圾回收器.

1.1 垃圾回收器

我们先来解释下Garbage Collector(垃圾回收器).

内存管理, 一直是编程中的一个大的问题. 在较老的语言中, 例如C++语言中, 内存管理是显式的, 也就是说使用者自己申请内存使用, 自己释放内存. 这就是为什么C++语言中除了构造函数, 还有析构函数. 我们在创建对象的时候调用构造函数创建, 系统会在对象结束其作用域的时候调用析构函数, 我们需要做的就是在析构函数中释放掉我们申请的相关资源, 以便释放内存地址.

显然, 这种显式的由编程人员自己控制释放内存的方式很容易出问题, 忘了, 漏了, 都可能导致内存问题. 也不符合程序员要懒的特征.

故而, Java语言中引入了自动内存管理的机制, 也就是垃圾回收器. 大部分的现代面向对象语言, 也都是采用自动内存管理机制.

内存自动管理回收机制可以解决大部分, 但不是所有的内存问题, 这也是为什么我们要讨论内存泄露.

垃圾回收器的职责

垃圾回收器有三大职责:

  1. 分配内存;
  2. 确保任何被引用的对象保留在内存中;
  3. 回收不能通过引用关系找到的对象的内存.
垃圾回收的一般流程

![Slice 1](http://oat9lzupi.bkt.clouddn.com/Slice 1.jpg)

1.2 相关概念

垃圾回收(GC)

垃圾回收器中有一个进程来做上面的这些事情, 这个进程查找我们的对象引用的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值