• Non ci sono risultati.

2MemoriausatadallaJVM 1Invocazionediunmetodo Organizzazionedellamemoriaericorsione AzzoliniRiccardo2018-12-14

N/A
N/A
Protected

Academic year: 2021

Condividi "2MemoriausatadallaJVM 1Invocazionediunmetodo Organizzazionedellamemoriaericorsione AzzoliniRiccardo2018-12-14"

Copied!
3
0
0

Testo completo

(1)

Azzolini Riccardo 2018-12-14

Organizzazione della memoria e ricorsione

1 Invocazione di un metodo

1. Passaggio per valore dei parametri: al momento della chiamata, i parametri formali vengono allocati e inizializzati con i valori degli argomenti corrispondenti.

2. Esecuzione.

3. Restituzione del risultato e rientro al codice chiamante, indicati dall’istruzione return.

4. Distruzione dell’ambiente di esecuzione: viene rilasciata la memoria utilizzata per l’esecuzione, (cioè per le variabili locali e i parametri formali).

2 Memoria usata dalla JVM

Memoria statica: utilizzata per i campi statici delle classi.

• Viene allocata quando le classi sono caricate per l’esecuzione.

• La quantità necessaria per una classe può essere stabilita a priori esaminando esclusivamente il testo di tale classe.

Stack: contiene i dati usati dai singoli metodi che vengono man mano eseguiti.

• La sua struttura evolve dinamicamente durante l’esecuzione, in base alle chiamate di metodi.

Heap: memorizza gli oggetti creati dinamicamente durante l’esecuzione.

1

(2)

3 Gestione dell’heap

Gli oggetti vengono creati dinamicamente, richiamando i costruttori delle classi attra- verso le espressioni new.

L’organizzazione dell’heap è mantenuta dal garbage collector, che:

• recupera la memoria occupata da oggetti non più referenziati (e quindi inaccessi- bili), in modo che possa essere riutilizzata

• riorganizza l’heap per rimediare ai problemi di allocazione dovuti alla frammenta- zione

4 Stack e record di attivazione

Lo stack è una pila (struttura LIFO) di record di attivazione.

I record di attivazione sono aree di memoria locale che contengono dati relativi a ciascun metodo attivato. Ogni record corrisponde a un’invocazione di un metodo, e contiene:

• informazioni di controllo, per

– ricevere i risultati dei metodi richiamati

– effettuare correttamente il rientro dai metodi richiamati

• dati del metodo – variabili locali

– parametri formali, inizializzati con i valori degli argomenti forniti nella chia- mata

5 Ricorsione

Un’entità è detta ricorsiva se è definita in termini di se stessa.

In particolare, un metodo si dice ricorsivo se richiama se stesso.

2

(3)

5.1 Esempio

Si può utilizzare un metodo ricorsivo per calcolare il fattoriale di un numero:

n! = {

1 se n = 0

n· (n − 1)! altrimenti public static int fattoriale(int n) {

if (n == 0) return 1;

else

return n * fattoriale(n - 1);

}

3

Riferimenti

Documenti correlati

Lo stesso vale per la famiglia umana, ma qui è Dio il “genitore”, il fondamento e la forza della nostra fraternità.” La scommessa di questo informatore che ogni tanto entra in

•  Il valore iniziale di parametri formali viene definito all’atto della chiamata della funzione dal programma chiamante tramite il passaggio dei parametri attuali.. Corso

• Il prototipo prototipo di una funzione è una dichiarazione di funzione antecedente alla sua definizione: permette al compilatore di compiere il controllo sui tipi degli argomenti

Passaggio parametri per VALORE (by value): parametri attuali e parametri formali sono variabili di memoria distinte e al momento della chiamata del sottoprogramma

Riportiamo qui per convenien- za le ipotesi di applicabilità della regola di derivazione sotto il segno di integrale per questo tipo di integrali (vedi De Marco [1, pagina

Dato che la funzione norma `e convessa (si veda il Riquadro 1), che il quadrato di una funzione non-negativa convessa `e convesso (si veda il Riquadro 2) e che la somma di fun-

Poiché i momenti della popolazione sono funzione dei parametri, basta considerare tanti momenti quanti sono i parametri da stimare e risolvere un sistema di r equazioni

Uno degli scopi della statistica inferenziale è quello di ottenere informazioni circa i parametri di una popolazione (considerati fissi) a partire da valori