Java虚引用(PhantomReference)有以下特点:
1. 虚引用对象的get()方法始终返回null,无法获取到实际引用对象的值。
2. 虚引用主要用于跟踪对象被垃圾回收器回收的情况,可以在对象被回收之前收到一个系统通知。
3. 虚引用必须与引用队列(ReferenceQueue)一起使用,当虚引用所引用的对象被垃圾回收时,会将虚引用对象添加到引用队列中。
4. 虚引用的存在不会影响对象的生命周期,也不会阻止对象被垃圾回收。
5. 虚引用通常用于清理直接内存(DirectMemory)的操作,当虚引用被添加到引用队列后,可以在引用队列中获取到虚引用所引用的对象,并进行相应的清理操作。