强引用
特点:1. 当内存空间不足,JVM宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题
使用场景:该变量不希望被垃圾回收器回收
软引用
特点:创建缓存的时候,创建的对象放进缓存中,当内存不足时,JVM就会回收早先创建的对象。
使用场景:图片、网页缓存之类
占空间大,用的时候可以再读取
弱引用
特点:在垃圾回收时,一旦发现弱引用对象,无论内存是否不足,都会进行回收
使用场景:
1.防止内存泄漏,保证内存被JVM回收
2.保护对象引用
虚引用
特点:任何时候都可能被垃圾回收器回收
使用场景:跟踪对象被GC回收的活动