码迷,mamicode.com
首页 > 编程语言 > 详细

Java垃圾回收(GC)与引用的种类

时间:2014-12-10 14:09:55      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   ar   os   sp   for   java   on   

垃圾回收 GC
bubuko.com,布布扣
public class MyObject {
    private String id;

    public MyObject(String id) {
        this.id = id;
    }

    @Override
    public String toString() {
        return "MyObject{" +
                "id=‘" + id + ‘\‘‘ +
                ‘}‘;
    }
    public void finalize() {
        System.out.println("对象回收"+id);
    }
    
}

引用类型 1.强引用
               2.软引用
               3.弱引用
               4.虚引用
bubuko.com,布布扣
输出结果
bubuko.com,布布扣
源码

public class GCTest {
    public static void main(String[] args){
      int length =5;
        //--------------创建强引用------------
        Set<MyObject> a=new HashSet<MyObject>();
        for(int i=0;i<length;i++){
           MyObject ref=new MyObject("hard_"+i);
           System.out.println("创建强引用:"+ref);
           a.add(ref);
        }
        a=null;
        //------------- 创建软引用-------------
        Set<SoftReference<MyObject>> sa=new HashSet<SoftReference<MyObject>>();
        for (int i = 0; i < length; i++) {
            SoftReference<MyObject> ref=new SoftReference<MyObject>(new MyObject("soft_"+i));
            System.out.println("创建软引用:"+ref.get());
            sa.add(ref);
        }
        System.gc();
        //------------- 创建弱引用-------------
        Set<WeakReference<MyObject>> wa=new HashSet<WeakReference<MyObject>>();
        for (int i = 0; i < length; i++) {
            WeakReference<MyObject> ref=new WeakReference<MyObject>(new MyObject("weak_"+i));
            System.out.println("创建弱引用:"+ref.get());
            wa.add(ref);
        }
        System.gc();
        //------------- 创建虚引用-------------
        ReferenceQueue<MyObject> rq=new ReferenceQueue<MyObject>();
        Set<PhantomReference<MyObject>> pa=new HashSet<PhantomReference<MyObject>>();

        for (int i = 0; i < length; i++) {
            PhantomReference<MyObject> ref=new PhantomReference<MyObject>(new MyObject("phantom_"+i),rq);
            System.out.println("创建虚引用:"+ref.get());
            pa.add(ref);
        }
        System.gc();
    }
}







Java垃圾回收(GC)与引用的种类

标签:style   blog   http   ar   os   sp   for   java   on   

原文地址:http://www.cnblogs.com/jgig11/p/4155217.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!