java弱引用
今天看了一个JAVA内存垃圾管理的例子,觉的很有意思!贴到网上(以备回顾)package test;import java.lang.ref.WeakReference;import java.util.WeakHashMap;import javax.swing.text.html.HTMLDocument.HTMLReader.IsindexAction;public class testWeakReference {public static void main(String[] args) {System.out.println("=======================弱引用对象垃圾收集情况================");myWeakObject mwo = new myWeakObject("myweakobject1");WeakReference wr = new WeakReference(mwo);mwo = null;((myWeakObject) wr.get()).show();System.out.println("第一次垃圾收集!!!");System.gc();try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}if (wr.get() != null) {((myWeakObject) wr.get()).show();}System.out.println("==========================弱引用MAP=========================");WeakHashMap whm = new WeakHashMap();myWeakObject mwo2 = new myWeakObject("myweakobject2");whm.put(mwo2, "XXXXX");mwo2 = null;((myWeakObject) whm.keySet().iterator().next()).show();System.out.println("第二次垃圾回收!!!");System.gc();try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}((myWeakObject) whm.keySet().iterator().next()).show();}}class myWeakObject {String mwname;public myWeakObject(String mwname) {super();this.mwname = mwname;}public void finalize() {System.out.println(mwname + "对象满足垃圾收集条件,被收集!!!");}public void show() {System.out.println(mwname + "对象还可以被调用!!!");}}
页:
[1]