Actualmente estoy tratando de profundizar en la especificación de la Máquina Virtual de Java. He estado leyendo Inside the JVM book online y hay una abstracción confusa que no puedo entender: Constant Pool. aquí está el extracto del libro:¿Cuál es el propósito de Java Constant Pool?
Para cada tipo que carga, una máquina virtual Java debe almacenar un conjunto constante. Un conjunto constante es un conjunto ordenado de constantes utilizadas por el tipo, que incluye literales (cadena, entero y constantes de coma flotante) y referencias simbólicas a tipos, campos y métodos. Las entradas en el grupo constante se referencian por índice, al igual que los elementos de un conjunto. Debido a que contiene referencias simbólicas a todos los tipos, campos y métodos utilizados por un tipo, el conjunto constante desempeña un papel central en la vinculación dinámica de los programas Java
Tengo varias preguntas sobre lo anterior y el CP en general:
- ¿Está el CP ubicado en el archivo
.class
para cada tipo? - ¿Qué quiere decir el autor con "referencia simbólica"?
- ¿Cuál es el propósito de Constant Pool, en inglés simple?
"Cuando se compila una clase Java ..."? ¿No es un archivo .class un código Java compilado? –
Sí, un archivo .java se convierte en un archivo .class cuando se compila. –
el enlace está roto –