文章目录
一、静态变量
二、 Java 引用类型 ( 强、软、弱、虚 )
一、静态变量
----
GC Root 对象 :
线程栈 中的 栈帧 中的 局部变量表 中的 引用对象 ;
方法区 中的 静态引用对象...;
方法区 中的 常量引用对象 ;
本地方法栈 中的 JNI 中的 引用的对象 ;
所有的 静态变量 都是 GC Root 对象 , 一旦使用了静态变量 , 该变量涉及到的所有引用对象 , 都在以 GC...Root 为起点的调用链中 , 这些对象始终都无法变为 垃圾对象 , 无法被回收 , 这就造成了内存泄漏 ;
二、 Java 引用类型 ( 强、软、弱、虚 )
----
参考博客 : 【Android...内存优化】Java 引用类型 ( 强引用 | 软引用 | 弱引用 | 虚引用 )
强引用 , StrongRefrence , Java 默认的引用 , 如果被 强引用 引用的对象 , 永远都不可能被回收...如果单纯的想避免 OOM , 创建大对象时 建议使用软引用 ;
使用 软引用 , 弱引用 时 , 注意程序的逻辑 , 不要因为出现对象被系统回收 , 导致出现 空指针 异常之类的问题 , 要有备份方案