java esercizio su Garbage Collector

sare1234

Utente Attivo
262
3
Potete aiutarmi a capire dove sbaglio:

Quanti oggetti al massimo possono essere deallocati
all’uscita del metodo m? Il risultato è 6 ma io mi trovo 5 come in figura

Java:
public class Currency {
     String name = new String();
     static Integer value = new Integer();
     static void getCurrency(Integer v) {
         Currency c = new Currency();
         c.value = v;
     }
     public static void m() {
         Currency.getCurrency(50);
         Currency.getCurrency(100);
     }
     public static void main(String[] argv){
         Currency.m();
     }
}
 
Ultima modifica:

BAT

Moderatore
Staff Forum
Utente Èlite
22,948
11,581
CPU
1-Neurone
Dissipatore
Ventaglio
RAM
Scarsa
Net
Segnali di fumo
OS
Windows 10000 BUG
mi trovo 5 come in figura
quale figura?

il risultato è 5 perché la chiamata m() provoca la chiamata a getCurrency()
  • getCurrency() crea 2 istanze di Currency --> siamo a 2 oggetti
  • in ciascuna istanza di Currency viene creata una stringa --> 2 nuovi oggetti stringa --> arriviamo a 4 oggetti
  • il quinto oggetto è Integer --> 1 solo perché è dichiarato static, quindi attributo statico di classe --> creato una sola volta e valido per tutte le istanza di Currency
 

sare1234

Utente Attivo
262
3
quale figura?

il risultato è 5 perché la chiamata m() provoca la chiamata a getCurrency()
  • getCurrency() crea 2 istanze di Currency --> siamo a 2 oggetti
  • in ciascuna istanza di Currency viene creata una stringa --> 2 nuovi oggetti stringa --> arriviamo a 4 oggetti
  • il quinto oggetto è Integer --> 1 solo perché è dichiarato static, quindi attributo statico di classe --> creato una sola volta e valido per tutte le istanza di Currency
 

Allegati

  • photo_2021-09-14_18-35-38.jpg
    photo_2021-09-14_18-35-38.jpg
    79.2 KB · Visualizzazioni: 26

BAT

Moderatore
Staff Forum
Utente Èlite
22,948
11,581
CPU
1-Neurone
Dissipatore
Ventaglio
RAM
Scarsa
Net
Segnali di fumo
OS
Windows 10000 BUG
quindi il 6° oggetto da deallocare sarebbe l'array di stringhe passato come argomento al main?
allora torna 6
 

sare1234

Utente Attivo
262
3
quindi il 6° oggetto da deallocare sarebbe l'array di stringhe passato come argomento al main?
allora torna 6
no di solito negli esercizio la stringa del main la inserisco giusto per ma non conta...forse l'errore sta nel fatto che io ho considerato il fatto che: getCurrency() crea 1 istanze di Currency
 
Ultima modifica:

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!