1、强引用
当一个对象被一个或一个以上的引用变量所引用时,它处于可达状态,不可能被系统回收机制回收。
2、软引用
对于只有软引用的对象,当系统内存空间足够时,它不会被回收,程序也可使用该对象,但当内存空间不足时,系统可能会回收它。常用于对内存敏感的程序中。
3、弱引用
当垃圾回收机制运行时,不管内存空间够不够,总会回收该对象占用的内存。
4、虚引用
完全类似于没有引用。主要用于跟踪对象被垃圾回收的状态,不能单独使用,必须与和引用队列联合使用。
都包含一个get()方法,用于获取被它们所引用的对象。
引用队列用于保存被回收后对象的引用。