Attualmente sto cercando di approfondire le specifiche della Java Virtual Machine. Ho letto Inside the JVM book online e c'è un'astrazione confusa che non riesco a capire: Constant Pool. ecco l'estratto dal libro:Qual è lo scopo del pool di costanti Java?
Per ogni tipo caricato, una macchina virtuale Java deve memorizzare un pool costante. Un pool costante è un insieme ordinato di costanti utilizzate dal tipo, inclusi valori letterali (stringhe, numeri interi e costanti floating point) e riferimenti simbolici a tipi, campi e metodi. Le voci nel pool costante sono referenziate dall'indice, proprio come gli elementi di un array. Perché contiene riferimenti simbolici a tutti i tipi, i campi ei metodi utilizzati da un tipo, la piscina costante svolge un ruolo centrale nel collegamento dinamico dei programmi Java
Ho diverse domande circa il sopra e CP in generale:
- Il CP si trova nel file
.class
per ciascun tipo? - Cosa significa l'autore per "riferimento simbolico"?
- Qual è lo scopo del Pool costante, in inglese semplice?
"Quando una classe Java è compilata ..."? Un file .class non è già un codice Java compilato? –
Sì, un file .java diventa un file .class quando viene compilato. –
il link è rotto –