Referencja null

/* ReferencjaNull.java */

// Słowo kluczowe null reprezentuje referencję pustą.
// Referencja pusta null może mieć dowolny typ. Jeśli
// w programie nie ma referencji do danego obiektu,
// to zostaje on przeznaczony do usunięcia z pamięci.
// Maszyna wirtualna Javy w stosownym czasie usuwa
// z pamięci obiekty, do których nie ma referencji.
// Metoda gc() z klasy System przynagla do usunięcia
// z pamięci wszystkich obiektów, do których nie ma referencji.
// Metoda obiektowa finalize(), określona w klasie Obiekt
// przesłania metodę obiektową finalize() z klasy Object.
// Metoda finalize() jest wywoływana przez metodę gc()
// na rzecz danego obiektu tuż przed jego usunięciem.

class Obiekt
{
  int numer;

  Obiekt(int nr)
  {
    numer = nr;
    System.out.println("Utworzono obiekt nr " + numer + ".");
  }

  public void finalize() // przesłaniamy metodę z klasy Object
  {
    System.out.println("Usunieto obiekt nr " + numer + ".");
  }
}

public class ReferencjaNull
{
  public static void main(String[] args)
  {
    Obiekt o1 = new Obiekt(1);
    Obiekt o2 = new Obiekt(2);

    System.gc();

    // w tym miejscu należy skompilować i uruchomić program

    o1 = o2;

    System.gc();

    // w tym miejscu należy skompilować i uruchomić program

    o1 = null;
    o2 = null;

    System.gc();
  }
}
Utworzono obiekt nr 1.
Utworzono obiekt nr 2.
Usunieto obiekt nr 1.
Usunieto obiekt nr 2.
Press any key to continue...

Strona główna