Dubbio in Java?

Lo scope delle variabili e degli oggetti in java è la sua funzione, dunque vengono deallocati al termine della funzione, giusto?

Ma quando io ho una cosa del genere:

class driver{    public static void main(String args[]){      articolo art = fun();      System.out.println(art);    }    static articolo fun(){        articolo art1 = new articolo();        System.out.println(art1);        return art1;    }}

La funzione "fun" mi restituisce lo stesso oggetto che è stato creato in sè stesso, perché? Come fa a funzionare così?

Cioè anche dopo il termine della sua esecuzione, l'oggetto esiste ancora

Aggiornamento:

Ovviamente YA fa schifo, questo è il codice https://pastebin.com/059cgptY

Ancora nessuna risposta.
Rispondi prima di tutti a questa domanda.