三种引用对比
引用类型 |
回收时期 |
强引用 |
当代码中显示标示这个对象不使用的时候 |
软引用 |
内存不足的时候 |
弱引用 |
不管内存是否充足,只要执行gc的时候就有可能被回收 |
通过上面我们可以看出除了强引用外其他两种引用在使用的时候都需要判断是否被回收。
软引用和弱引用的使用场景上的区别:
如果只是想避免OutOfMemory异常的发生,则可以使用软引用。如果对于应用的性能更在意,想尽快回收一些占用内存比较大的对象,则可以使用弱引用。
另外可以根据对象是否经常使用来判断选择软引用还是弱引用。如果该对象可能会经常使用的,就尽量用软引用。如果该对象不被使用的可能性更大些,就可以用弱引用。