1 强引用
当我们使用new创建对象时,被创建的对象就是强引用。只要有强引用,GC 永远不会回收掉该对象。
Map map = new HashMap();
2 软引用
如果一个对象只具备软引用,如果内存空间足够,那么JVM就不会GC它,如果内存空间不足了,就会GC该对象。
软引用需要借助SoftReference类完成。
3 弱引用
如果一个对象只具有弱引用,只要JVM的GC线程检测到了,就会立即回收。弱引用的生命周期要比软引用短很多。
软引用需要借助WeaKReference类完成。
!
4 虚引用
虚引用也称为幽灵引用或幻影引用。虚引用的 get 方法永远返回 null,一个对象是否存在虚引用不会对生存时间构成影响。唯一的用处:能在对象被 GC 时能够得知。JAVA 中用 PhantomReference 来实现虚引用。PhantomReference 使用时,必须要关联一个 ReferenceQueue 对象。当一个对象被 GC 的时候,如果该对象有虚引用,那么就会把对象放入 ReferenceQueue 里。通过检查 ReferenceQueue 队列中的对象来判等对象是否即将被回收,可以记录一些日志之类的信息。
Original: https://www.cnblogs.com/iforeverhz/p/16257076.html
Author: iforeverhz
Title: Java引用类型
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/583224/
转载文章受原作者版权保护。转载请注明原作者出处!