import java.util.Random;
import java.util.Scanner;

public class IntegerFlyweight
{

  public static void main(String[] args)
  {
    Integer[] flies = new Integer[10];

    for (int i = 0; i<10 ; i++)
      flies[i] = new Integer(i);

    Random rand = new Random();

    Integer[] weights = new Integer[10000000];

    for (int i=0 ; i<weights.length ; i++)
    {
      weights[i] = new Integer(rand.nextInt(10));
    }

    System.out.println("Press enter to continue");
    (new Scanner(System.in)).nextLine();

    for (int i=0 ; i<weights.length ; i++)
    {
      weights[i] = flies[weights[i]];
    }

    System.gc();

    System.out.println("Press enter to continue");
      (new Scanner(System.in)).nextLine();


  }

}