Java引用类型

1 强引用

当我们使用new创建对象时,被创建的对象就是强引用。只要有强引用,GC 永远不会回收掉该对象。

  Map<String, String> map = new HashMap();

2 软引用

如果一个对象只具备软引用,如果内存空间足够,那么JVM就不会GC它,如果内存空间不足了,就会GC该对象。

软引用需要借助SoftReference类完成。

3 弱引用

如果一个对象只具有弱引用,只要JVM的GC线程检测到了,就会立即回收。弱引用的生命周期要比软引用短很多。

软引用需要借助WeaKReference类完成。

!carbon1

4 虚引用

虚引用也称为幽灵引用或幻影引用。虚引用的 get 方法永远返回 null,一个对象是否存在虚引用不会对生存时间构成影响。唯一的用处:能在对象被 GC 时能够得知。JAVA 中用 PhantomReference 来实现虚引用。PhantomReference 使用时,必须要关联一个 ReferenceQueue 对象。当一个对象被 GC 的时候,如果该对象有虚引用,那么就会把对象放入 ReferenceQueue 里。通过检查 ReferenceQueue 队列中的对象来判等对象是否即将被回收,可以记录一些日志之类的信息。

xu

[查考文章](Java 对象的引用有哪几种方式? - 云+社区 - 腾讯云 (tencent.com))

posted @ 2022-05-11 11:01  iforeverhz  阅读(33)  评论(0)    收藏  举报