- 强引用: 平常写的大部分代码都是强引用, 例如Object obj = new Object(); 只要是强引用的类型, 那么垃圾回收的时候绝对不会去回收这个对象
- 软引用: 把对象用SoftReference包装起来. 特点: 正常情况下垃圾回收是不会回收软引用对象的, 但是如果垃圾回收后, 发现内存还是不够存放新的对象, 内存快要溢出了, 那么就会把软引用回收掉, 即使这个软引用被其他变量引用了, 还是会被垃圾回收器回收掉.
- 弱引用: 把对象用WeakReference包装起来. 特点: 比软引用更加的无用一些, 当发生JVM回收的时候, 无论内存是否充足, 都会被回收掉.
- 虚引用: 形同虚设的引用, 基本上用不到, 它的作用在于跟踪垃圾回收过程,在对象被收集器回收时收到一个系统通知。 当垃圾回收器准备回收一个对象时,如果发现它还有虚引用,就会在垃圾回收后,将这个虚引用加入引用队列,在其关联的虚引用出队前,不会彻底销毁该对象。 所以可以通过检查引用队列中是否有相应的虚引用来判断对象是否已经被回收了。
强引用 软引用 弱引用 虚引用
关注
打赏