Java 中的引用(Reference)可以分为四种类型,分别是强引用、软引用、弱引用和虚引用。不同类型的引用主要用于控制对象的生命周期,以及 JVM 的垃圾回收机制(GC)如何处理这些对象。
1. 强引用(Strong Reference)
定义:
• 强引用是 Java 中最常见的引用类型。当我们通过 new 操作符创建一个对象,并将其赋值给一个变量时,这个变量就是对该对象的强引用。
• 只要一个对象存在强引用,它就不会被垃圾回收器回收。即使系统内存不足,JVM 也不会回收这些强引用的对象。
示例:
String str = new String("Hello World"); // `str` 是强引用
特点:
• 对象有强引用时,垃圾回收器绝不会回收该对象。
• 常见的引用对象,例如数组、类实例,通常都是强引用。
适用场景:
• 使用强引用的对象一般在整个程序运行过程中都需要,因此强引用是最常用的引用类型。
2. 软引用(Soft Reference)
定义:
• 软引用是一种相对较弱的引用类型,用于描述一些还有