Java的四大引用详解:强引用、软引用、弱引用、幻引用本文将单独讲解@mikechenJava引用。从JDK1.2开始,对象引用分为4个层次,这样程序可以更灵活地控制对象的生命周期。这4个级别从高到低依次为:强引用、软引用、弱引用、虚引用。\Strongreferences强引用是最常见的引用。一般情况下,一个对象会被赋值给一个引用变量,而这个引用变量就是强引用。例如://对MikeChen的强引用mikechen=newMikeChen();方法内部有强引用,强引用存放在Java栈中,而真正的引用内容(MikeChen)存放在Java堆中。\\如果一个对象有强引用,垃圾收集器将不会回收该对象。当内存空间不足时,JVM宁愿抛出OutOfMemoryError异常。如果没有使用到强引用对象,需要对其进行弱化,以便GC回收,如下://帮助垃圾回收器回收这个对象mikechen=null;显式设置mikechen对象为null,或者让它超过对象的生命周期,那么GC就认为没有对该对象的引用,此时可以回收该对象。何时收集它取决于GC算法。示例:packagecom.mikechen.java.refenence;/***强引用示例**@authormikechen*/publicclassStrongRefenenceDemo{publicstaticvoidmain(String[]args){Objecto1=newObject();对象o2=o1;o1=空;系统.gc();System.out.println(o1);//nullSystem.out.println(o2);//java.lang.Object@2503dbd3}}虽然o1已经被回收了,但是o2对o1有强引用,一直存在,所以不会被GC回收。软引用软引用是弱于强引用的引用,需要用java.lang.ref.SoftReference类来实现。例如:Stringstr=newString("abc");//强引用SoftReferencesoftRef=newSoftReference(str);//软引用如果一个对象只有软引用,那么内存空间是足够的,垃圾收集器是不会回收它的。如果内存空间不足,就会回收这些对象的内存。先通过一个例子来理解软引用:/***弱引用例子**@authormikechen*/Objectobj=newObject();SoftReferencesoftRef=newSoftReference