Qual è il ciclo di vita di un oggetto in Java?

Un tema che è importante conoscere quando si lavora con la programmazione orientata agli oggetti in Java è il ciclo di vita di un oggetto. Come nascono oggetti, vivere la loro vita, e morire è importante. In Java, il ciclo di vita di un oggetto è il seguente:

  1. Prima che un oggetto può essere creato da una classe, la classe deve essere caricato. Per fare questo, il runtime Java individua la classe su disco (in un file .class) e lo legge in memoria.

    Poi Java cerca eventuali inizializzatori statici che inizializzano campi statici - i campi che non appartengono ad una particolare istanza della classe, ma appartengono alla classe stessa e condivisi da tutti gli oggetti creati dalla classe.

    Una classe viene caricato la prima volta che si crea un oggetto dalla classe o la prima volta che si accede a un campo statico o un metodo della classe. Quando si esegue il metodo principale di una classe, per esempio, la classe viene inizializzato perché il metodo principale è statico.

  2. Un oggetto viene creato da una classe quando si utilizza la nuova parola chiave. Per inizializzare la classe, Java alloca la memoria per l'oggetto e imposta un riferimento all'oggetto in modo che il runtime Java può tenere traccia di esso.

    Poi Java chiama il costruttore della classe, che è come un metodo, ma viene chiamato una sola volta: quando viene creato l'oggetto. Il costruttore è responsabile di fare qualsiasi elaborazione necessaria per inizializzare l'oggetto - variabili inizializzazione, l'apertura dei file o database, e così via.
  3. L'oggetto vive la sua vita, per accedere ai metodi e campi pubblici a chi vuole e ha bisogno di loro.
  4. Quando è il momento per l'oggetto di morire, l'oggetto viene rimosso dalla memoria, e Java gocce suo riferimento interno ad esso. Non è necessario distruggere gli oggetti stessi. Una parte speciale del runtime Java chiamato "garbage collector" si prende cura di distruggere tutti gli oggetti, quando non sono più in uso.