import java.lang.ref.*; import java.util.*;
public class MemoryTest3 { public static void main( String[] args ) { ReferenceQueue queue = new ReferenceQueue(); ArrayList blocks = new ArrayList(); int size = 65536; for ( int id=0; true; id++ ) { blocks.add( new MyReference(new MemoryBlock(id,size),queue) ); while ( true ) { Reference ref = queue.poll(); if ( ref == null ) break; blocks.remove( ref ); } System.out.println( "blocks: "+blocks ); size *= 2; } } } |