8月20号
四大引用
垃圾回收机制在回收对象的时候,会判断是否有引用指向对象
- 强引用
- 程序中大部分的对象都是强引用,如果一个对象具有一个强引用指向它,那垃圾回收器是不会回收他的,在内存不足的情况,系统宁愿报outOfMemery也不会回收这些对象
- 软引用
- 如果一个对象只具有软引用,那内存充足的情况是不会被回收的,但在系统内存不足的情况,垃圾回收器还是会回收的。在未被回收之前,程序能正常使用该对象。软引用和一个引用队列管理,若软应用被回收,就会将软应用加入的引用队列中
- 弱引用
弱引用和软引用的区别在于,只具有弱引用的对象具有更短的生命周期,当垃圾回收器扫描到弱引用对象时,就会回收掉该对象。无论内存是否充足。回收后同样会将该引用加入到相关联的引用队列中 - 虚引用
- 虚引用顾名思义就是形同虚设,对对象的生命周期毫无影响。一个对象被虚引用指引,就和没有引用一下。会被回收。与软引用和虚引用的区别在于:他必须和引用队列联合使用。唯一目的就是对象被回收的时候收到一个系统通知