import java.text.*;
import java.util.*;
import java.io.*;

public class readObjs {

		public readObjs() {
		}

		public static void main(String[] args) {
			System.out.println("Start...");

			try {
				ObjectInputStream in = new ObjectInputStream(
						 new BufferedInputStream(new FileInputStream("file.obj")));
				Vector vec;

        // 'for' para simular as interações de uma table
        // é o centro do problema

        // por que o garbage collector não limpa os objetos,
        // uma vez que a cada iteração a referência para o
        // objeto anterior é perdida??

        // pior: após o término do programa, por que a memória
        // alocada não é limpada?

        // obs: a memória só é limpada qdo matamos a javaw
				for (int i = 0; i<200000; i++) {
					vec = (Vector) in.readObject();

          // 'if' para acompanhar iterações
					if ( (i%1000) == 0)
						System.out.println("i = "+i);
					// System.gc();
				}
				in.close();
			} catch(Exception ex) {
				ex.printStackTrace();
			}
			System.out.println("End.");
		}
}


