java弱引用例子_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 + "对象还可以被调用!!!");

}

}

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2009-10-12 20:04

浏览 2330

评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值