在 Java 中,引用类型分为以下四种:
1 强引用(Strong Reference):指向对象的引用是强引用,它是默认的引用类型,如果一个对象具有强引用,那么垃圾回收器不会回收这个对象,即使 JVM 内存不足也不会回收。
2 软引用(Soft Reference):软引用是一种比强引用弱化一点的引用类型。当 JVM 内存不足时,垃圾回收器会尝试回收被软引用指向的对象。软引用可以用来实现缓存等功能,当内存不足时,缓存中的对象可以被回收,避免了 OutOfMemoryError 错误。
3 弱引用(Weak Reference):弱引用是一种比软引用更弱化的引用类型。当 JVM 进行垃圾回收时,被弱引用指向的对象无论内存是否充足都会被回收。弱引用常用于实现缓存、监视器等功能。
4 虚引用(Phantom Reference):虚引用是一种比弱引用还要弱化的引用类型。虚引用不能直接通过 get() 方法访问到它所指向的对象,它主要用于在对象被垃圾回收时收到一个系统通知,或者在一个对象被销毁时进行一些清理工作。虚引用通常与 ReferenceQueue 一起使用。
以上四种引用类型在 Java 中都有其独特的作用,可以根据实际需求选择不同的引用类型来实现所需的功能。