Java WeakReference WeakReference(T referent)

PreviousNext

Java WeakReference WeakReference(T referent) Creates a new weak reference that refers to the given object.

Introduction

Creates a new weak reference that refers to the given object.

The new reference is not registered with any queue.

The method WeakReference() is a constructor.

Syntax

The method WeakReference() from WeakReference is declared as:

public WeakReference(T referent)

Parameter

The method WeakReference() has the following parameter:

  • T referent - object the new weak reference will refer to

Example

The following code shows how to use Java WeakReference WeakReference(T referent)

Example 1

import java.lang.ref.WeakReference;
import java.util.Iterator;
import java.util.Map;
import java.util.WeakHashMap;

public class Main {
    public static void main(String[] argv) throws Exception {
        Object keyObject = "";
        Object valueObject = "";
        Map<Object, Object> weakMap = new WeakHashMap<Object, Object>();

        weakMap.put(keyObject, valueObject);
        WeakReference weakValue = new WeakReference<Object>(valueObject);

        weakMap.put(keyObject, weakValue);

        Iterator it = weakMap.keySet().iterator();
        while (it.hasNext()) {
            Object key = it.next();
            weakValue = (WeakReference) weakMap.get(key);
            if (weakValue == null) {
                System.out.println("Value has been garbage-collected");
            } else {
                System.out.println("Get value");
                valueObject = weakValue.get();
            }//  w  w  w    .d   e m  o   2   s.   c o  m  
        }
    }
}

Result

Example 2

import java.lang.ref.WeakReference;
import java.util.Iterator;
import java.util.Map;
import java.util.WeakHashMap;

public class Main {
    public static void main(String[] argv) throws Exception {
        Object keyObject = "";
        Object valueObject = "";
        Map weakMap = new WeakHashMap();

        weakMap.put(keyObject, valueObject);
        WeakReference weakValue = new WeakReference(valueObject);

        weakMap.put(keyObject, weakValue);

        Iterator it = weakMap.keySet().iterator();
        while (it.hasNext()) {
            Object key = it.next();
            weakValue = (WeakReference) weakMap.get(key);
            if (weakValue == null) {
                System.out.println("Value has been garbage-collected");
            } else {
                System.out.println("Get value");
                valueObject = weakValue.get();
            }/* w   ww   .  d   em  o    2s   . c    o  m*/
        }
    }
}

Result

PreviousNext

Related