8月20号

四大引用

垃圾回收机制在回收对象的时候,会判断是否有引用指向对象

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