强引用:最常见的引用类型,保证对象不被回收。 软引用:内存敏感的引用,适合缓存场景。 弱引用:短生命周期的引用,适合规范化映射或动态代理。 虚引用:仅用于监控对象的回收,适合清理或跟踪任务。 __EOF__
虚引用是最弱的一种引用类型,几乎没有直接作用。 虚引用的存在仅用于追踪对象被回收的情况。 当一个对象具有虚引用时,垃圾回收器回收该对象时,会将该引用加入到引用队列(ReferenceQueue)中,供程序员获取回收的通知。 PhantomReference<Object> phantomRef =newPhantomReference<>(newObject(), referenceQueue);// 虚引...
强引用,就是我们最常见的普通对象引用。 只要强引用还存在,垃圾收集器永远不会回收掉被引用的实例对象。 Objecto=newObject(); 1. 软引用“有 n 次活的机会” 在系统将要发生内存溢出异常之前,垃圾收集器会把只被软引用关联着的实例对象进行回收,如果这次回收还没有足够的内存,才会抛出内存溢出异常(OutOfMemoryE...
引用队列可以和软引用,弱引用和虚引用联合使用.并且虚引用必须和引用队列联合使用.如果软引用(弱引用或者虚引用)所引用的对象被垃圾回收,java虚拟机就会把这个引用加入到与之关联的引用队列中。 Stringreference ="hello";//引用队列ReferenceQueue<String> queue =newReferenceQueue<>();//弱引用WeakReference<String> ...
从JDK 1.2版本开始,对象的引用被划分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、软引用、弱引用和虚引用。 1.强引用 就是普通的变量对对象的引用,强引用的对象不会被系统回收。 Object strongReference = new Object(); ...