2. La macchina virtuale Java


2.4 Lo stack

Lo stack in Java è usato per fornire i parametri alle operazioni, ricevere e restituire valori, passare parametri ai metodi, e altre cose simili. Come in un linguaggio di programmazione convenzionale, lo stack è organizzato in frame (activation record). I frame dello stack sono strutture di dati che contengono ognuna lo stato di un metodo. Quando vengono invocati metodi annidati, i frame relativi ai vari metodi vengono posti nello stack e da esso successivamente richiamati. Nella macchina Java, ogni frame dello stack è costituito da tre componenti. Esse sono:

  1. variabili locali
  2. parametri per l'esecuzione
  3. stack degli operandi

Le dimensioni delle prime due componenti (variabili locali e parametri per l'esecuzione) sono stabilite all'atto della chiamata di un metodo. La terza componente (stack degli operandi) invece varia di dimensione durante l'esecuzione del metodo. E' possibile inoltre che in un certe situazioni una o più componenti del frame siano vuote.