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...