|
La Method Area
La Method Area è la zona della Macchina Astratta che mantiene, a
Run-Time, le informazioni di tipo necessarie per la
corretta esecuzione del programma corrente.
All'interno della Method Area sono contenute delle strutture, una
per ogni tipo coinvolto nell'interpretazione, sia esso classe o interfaccia.
Tali strutture, che descrivono le varie classi o interfacce, sono dette
Class Structure.
Dettaglio di una Class Structure all'interno della Method Area
|
La Class Structure contiene, in maniera più compatta, lo stesso
complesso di informazioni presente all'interno del
file .class, generato dalla compilazione
dei programmi Java.
Ogni classe ( o interfaccia ) è associata alla sua Class Structure
tramite la Class Table del Class Manager.
La Class Structure mantiene, per ogni tipo, le informazioni necessarie
alla sua manipolazione.
Nel caso di una classe, le informazioni contenute schematicamente sono:
Nel caso delle interfacce, le parti presenti nella Class Structure sono
sovrabbondanti; in particolare:
- il puntatore super viene fatto puntare alla classe Object;
- i puntatori alle interfacce puntano alle ( possibili ) superinterfacce;
- la Run-Time Costant Pool è vuota, poiché
essa specifica entità usate nei metodi;
- la Method Table è vuota, poiché le interfacce non contengono implementazione;
- la Field Table è vuota, poiché le interfacce non possono avere field
istanza ( e non possono essere istanziate );
- le locazioni per i campi di classe contengono i valori delle eventuali
costanti di classe che l'interfaccia ha dichiarato.
Osserviamo infine che le informazioni relative alla Class Structure vengono caricate nella
Method Area da parte del Class Manager, e che
per la Class Structure, una volta caricata, non è prevista la possibiltà di
effettuare un processo di "unload", per cui essa resterà nella Method Area fino all'arresto
della Macchina Astratta.
|